cuculungwa 0.0.78 → 0.0.79
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- checksums.yaml +4 -4
- data/lib/cuculungwa.rb +16 -19
- data/lib/cuculungwa/formatters.rb +14 -16
- data/lib/cuculungwa/generators.rb +23 -28
- data/lib/cuculungwa/utils.rb +10 -13
- metadata +3 -2
checksums.yaml
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
---
|
2
2
|
SHA1:
|
3
|
-
metadata.gz:
|
4
|
-
data.tar.gz:
|
3
|
+
metadata.gz: 829d80f72080770a78be83b0055111b17ac79835
|
4
|
+
data.tar.gz: 49a049fba5d073d9b73afc6a857508e9bcb424e8
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: dfdbe33217c430f03dd84298f4ad9808efb49c48c309a315d44ec99f49c65a0496cf5a996f1202a325a175b2aecc24715eaf4c503e4818caf38db4e523788b53
|
7
|
+
data.tar.gz: 89bf17fc3dc325040730d559e074b4aac0044ca08b08c735e0d6dd25a9db8df856749015a675fa9f99095bc1959d05783a77dd850dafd4568a6e4f7cf6f29b86
|
data/lib/cuculungwa.rb
CHANGED
@@ -10,15 +10,12 @@ require 'capybara-screenshot/cucumber'
|
|
10
10
|
require 'rspec/expectations'
|
11
11
|
require 'site_prism'
|
12
12
|
require 'yaml'
|
13
|
-
|
14
13
|
require 'cuculungwa/generators'
|
15
14
|
require 'cuculungwa/utils'
|
16
15
|
require 'cuculungwa/formatters'
|
17
16
|
|
18
|
-
config = YAML
|
19
|
-
if ENV['CONFIG']
|
20
|
-
config.merge!(YAML::load(File.open(ENV['CONFIG'])))
|
21
|
-
end
|
17
|
+
config = YAML.load(File.open('config/config.yml'))
|
18
|
+
config.merge!(YAML.load(File.open(ENV['CONFIG']))) if ENV['CONFIG']
|
22
19
|
config['project']['default_host'] = config['project'][ENV['PROJECT'] || 'development']
|
23
20
|
config['framework']['i18n']['locale'] = ENV['LOCALE'] || config['framework']['i18n']['locale']
|
24
21
|
|
@@ -26,44 +23,44 @@ I18n.enforce_available_locales = false
|
|
26
23
|
I18n.locale = config['framework']['i18n']['locale'].to_sym
|
27
24
|
I18n.load_path = Dir[config['framework']['i18n']['load_path']]
|
28
25
|
|
29
|
-
if config['capybara']['browser']=='phantomjs'
|
26
|
+
if config['capybara']['browser'] == 'phantomjs'
|
30
27
|
Capybara.register_driver :poltergeist do |app|
|
31
28
|
Capybara::Poltergeist::Driver.new app,
|
32
|
-
|
33
|
-
|
29
|
+
phantomjs_options: config['capybara']['phantomjs_specific']['options'],
|
30
|
+
window_size: config['capybara']['phantomjs_specific']['window_size']
|
34
31
|
end
|
35
32
|
Capybara.default_driver = :poltergeist
|
36
|
-
elsif config['capybara']['browser']=='capybara-webkit'
|
33
|
+
elsif config['capybara']['browser'] == 'capybara-webkit'
|
37
34
|
headless = Headless.new
|
38
35
|
headless.start
|
39
36
|
Capybara.default_driver = :webkit
|
40
|
-
elsif config['capybara']['browser']=='seleniumRC'
|
37
|
+
elsif config['capybara']['browser'] == 'seleniumRC'
|
41
38
|
require 'selenium-webdriver'
|
42
39
|
client = Selenium::WebDriver::Remote::Http::Default.new
|
43
|
-
client.timeout = ENV['CLIENT_TIMEOUT'] ? ENV['CLIENT_TIMEOUT'].to_i
|
40
|
+
client.timeout = ENV['CLIENT_TIMEOUT'] ? ENV['CLIENT_TIMEOUT'].to_i : 60
|
44
41
|
capabilities = Selenium::WebDriver::Remote::Capabilities.new
|
45
42
|
capabilities[:introduce_flakiness_by_ignoring_security_domains] = true
|
46
43
|
capabilities[:javascript_enabled] = true
|
47
44
|
capabilities[:css_selectors_enabled] = true
|
48
45
|
capabilities[:ignore_protected_mode_settings] = true
|
49
46
|
Capybara.register_driver :selenium do |app|
|
50
|
-
Capybara::Selenium::Driver.new(app, :
|
47
|
+
Capybara::Selenium::Driver.new(app, browser: :remote, url: config['capybara']['seleniumRC_specific']['hub'], http_client: client, desired_capabilities: capabilities)
|
51
48
|
end
|
52
49
|
Capybara.default_driver = :selenium
|
53
50
|
else
|
54
51
|
Capybara.register_driver :selenium do |app|
|
55
|
-
Capybara::Selenium::Driver.new(app, :
|
52
|
+
Capybara::Selenium::Driver.new(app, browser: config['capybara']['browser'].to_sym)
|
56
53
|
end
|
57
54
|
Capybara.default_driver = :selenium
|
58
55
|
end
|
59
56
|
|
60
57
|
Capybara.save_and_open_page_path = config['capybara']['save_and_open_page_path']
|
61
58
|
Capybara.app_host = config['project']['default_host']['front']
|
62
|
-
Capybara.
|
59
|
+
Capybara.default_max_wait_time = config['capybara']['default_wait_time']
|
63
60
|
|
64
|
-
#Quick finish after first fail
|
61
|
+
# Quick finish after first fail
|
65
62
|
After do |scenario|
|
66
|
-
Cucumber.wants_to_quit = ENV['STOP_ON_FAIL']=='true' && scenario.failed?
|
63
|
+
Cucumber.wants_to_quit = ENV['STOP_ON_FAIL'] == 'true' && scenario.failed?
|
67
64
|
end
|
68
65
|
|
69
66
|
World(Capybara)
|
@@ -79,9 +76,9 @@ AfterConfiguration do |configuration|
|
|
79
76
|
potential_feature_files = with_default_features_path(paths).map do |path|
|
80
77
|
path = path.chomp('/')
|
81
78
|
if File.directory?(path)
|
82
|
-
Dir[
|
83
|
-
elsif path[0..0] == '@'
|
84
|
-
|
79
|
+
Dir[path.to_s + config['framework']['features_regexp']].sort
|
80
|
+
elsif path[0..0] == '@' &&
|
81
|
+
File.file?(path[1..-1])
|
85
82
|
IO.read(path[1..-1]).split
|
86
83
|
else
|
87
84
|
path
|
@@ -6,17 +6,17 @@ module Formatters
|
|
6
6
|
splits = number_str.split('.')
|
7
7
|
|
8
8
|
unless splits.length == 2
|
9
|
-
|
9
|
+
fail Exception.new("#{number_str} doesn't contain dot.")
|
10
10
|
end
|
11
11
|
|
12
12
|
whole_part = splits[0]
|
13
13
|
fractional_part = splits[1]
|
14
14
|
separator = locale_spec[:separator]
|
15
15
|
|
16
|
-
unless fractional_part.empty?
|
17
|
-
|
18
|
-
|
19
|
-
|
16
|
+
delimiter = unless fractional_part.empty?
|
17
|
+
locale_spec[:delimiter]
|
18
|
+
else
|
19
|
+
''
|
20
20
|
end
|
21
21
|
|
22
22
|
negative = false
|
@@ -29,11 +29,9 @@ module Formatters
|
|
29
29
|
for i in whole_part.length.downto(1)
|
30
30
|
j = whole_part.length - i
|
31
31
|
|
32
|
-
if j % 3 == 0
|
33
|
-
whole_part_result = separator + whole_part_result
|
34
|
-
end
|
32
|
+
whole_part_result = separator + whole_part_result if j % 3 == 0 && j > 0
|
35
33
|
|
36
|
-
whole_part_result = whole_part[i-1] + whole_part_result
|
34
|
+
whole_part_result = whole_part[i - 1] + whole_part_result
|
37
35
|
end
|
38
36
|
|
39
37
|
unless negative
|
@@ -45,20 +43,20 @@ module Formatters
|
|
45
43
|
|
46
44
|
def short_iban(iban)
|
47
45
|
if iban.length >= 15
|
48
|
-
first_part = iban[0..1]+
|
49
|
-
middle_part=
|
50
|
-
last_part=iban[-4..-1]
|
51
|
-
iban_number=first_part+middle_part + last_part
|
46
|
+
first_part = iban[0..1] + ' ' + iban[2..3] + ' ' + iban[4..7]
|
47
|
+
middle_part = ' ... '
|
48
|
+
last_part = iban[-4..-1]
|
49
|
+
iban_number = first_part + middle_part + last_part
|
52
50
|
else
|
53
|
-
iban_number = add_space = iban[0..1]+
|
51
|
+
iban_number = add_space = iban[0..1] + ' ' + iban[2..iban.length]
|
54
52
|
end
|
55
53
|
return iban_number
|
56
54
|
end
|
57
55
|
|
58
56
|
def pl_iban_formatter(number)
|
59
|
-
number = number.gsub(/\s+/,
|
57
|
+
number = number.gsub(/\s+/, '').gsub('PL', '')
|
60
58
|
number = number[0..1] + ' ' + number[2..-1].gsub(/(.{4})/, '\1 ').strip
|
61
59
|
return number
|
62
60
|
end
|
63
61
|
end
|
64
|
-
World(Formatters)
|
62
|
+
World(Formatters)
|
@@ -1,7 +1,7 @@
|
|
1
1
|
module GenerateData
|
2
2
|
def get_unique_email(prefix = 'email', domain = 'test.com')
|
3
3
|
# returns unique test email
|
4
|
-
"#{prefix}-#{(Time.now.to_f *
|
4
|
+
"#{prefix}-#{(Time.now.to_f * 1_000_000).to_i}@#{domain}"
|
5
5
|
end
|
6
6
|
|
7
7
|
def get_test_password
|
@@ -10,9 +10,8 @@ module GenerateData
|
|
10
10
|
end
|
11
11
|
|
12
12
|
def get_random_currency_symbol
|
13
|
-
currencies =
|
14
|
-
|
15
|
-
]
|
13
|
+
currencies = %w(
|
14
|
+
PLN EUR USD GBP CZK)
|
16
15
|
currencies.sample
|
17
16
|
end
|
18
17
|
|
@@ -22,18 +21,18 @@ module GenerateData
|
|
22
21
|
# returns polish registration number of the population
|
23
22
|
if data_type.eql? 'positive_data_set'
|
24
23
|
weights = Array[1, 3, 7, 9, 1, 3, 7, 9, 1, 3]
|
25
|
-
year = rand
|
26
|
-
month = rand
|
27
|
-
day = rand
|
28
|
-
evidence_number = rand
|
29
|
-
sex=rand
|
30
|
-
pesel=
|
24
|
+
year = rand * 100
|
25
|
+
month = rand * 12 + 1
|
26
|
+
day = rand * 28 + 1
|
27
|
+
evidence_number = rand * 999
|
28
|
+
sex = rand * 9
|
29
|
+
pesel = '%02d%02d%02d%03d%d' % [year, month, day, evidence_number, sex]
|
31
30
|
temp_cs = 0
|
32
|
-
pesel_elem = pesel.each_char.map
|
33
|
-
for i in 0..weights.length-1
|
34
|
-
temp_cs +=weights[i]*pesel_elem[i]
|
31
|
+
pesel_elem = pesel.each_char.map(&:to_i)
|
32
|
+
for i in 0..weights.length - 1
|
33
|
+
temp_cs += weights[i] * pesel_elem[i]
|
35
34
|
end
|
36
|
-
control_sum = (10-(temp_cs%10))%10
|
35
|
+
control_sum = (10 - (temp_cs % 10)) % 10
|
37
36
|
return pesel + control_sum.to_s
|
38
37
|
elsif data_type.eql? 'negative_data_set'
|
39
38
|
return '00000000000'
|
@@ -46,12 +45,12 @@ module GenerateData
|
|
46
45
|
# returns polish business registration number
|
47
46
|
if data_type.eql? 'positive_data_set'
|
48
47
|
weights = [6, 5, 7, 2, 3, 4, 5, 6, 7]
|
49
|
-
code = rand(998-101) + 101
|
50
|
-
number = rand(
|
48
|
+
code = rand(998 - 101) + 101
|
49
|
+
number = rand(1_000_000)
|
51
50
|
nip = code.to_s + number.to_s.rjust(6, '0')
|
52
51
|
|
53
|
-
c = nip.split(//).map!
|
54
|
-
sum = c.zip(weights).map! {|x| x[0]*x[1]}.reduce(:+) % 11
|
52
|
+
c = nip.split(//).map!(&:to_i)
|
53
|
+
sum = c.zip(weights).map! { |x| x[0] * x[1] }.reduce(:+) % 11
|
55
54
|
|
56
55
|
sum = sum == 10 ? 0 : sum
|
57
56
|
return nip + sum.to_s
|
@@ -68,19 +67,15 @@ module GenerateData
|
|
68
67
|
# bank_prefix: if you want specify bank prefix (minimum 4 and maximum 8 digits)
|
69
68
|
# polish_format: if you want add spaces for readability
|
70
69
|
bank_prefix ||= sprintf('%08d', rand(10**8))
|
71
|
-
bank_prefix = bank_prefix.to_s.gsub(/\s+/,
|
70
|
+
bank_prefix = bank_prefix.to_s.gsub(/\s+/, '')
|
72
71
|
|
73
|
-
if bank_prefix.length < 4
|
74
|
-
raise 'Bank prefix error!'
|
75
|
-
end
|
72
|
+
fail 'Bank prefix error!' if bank_prefix.length < 4
|
76
73
|
|
77
|
-
if bank_prefix.length == 4
|
78
|
-
bank_prefix << '0001'
|
79
|
-
end
|
74
|
+
bank_prefix << '0001' if bank_prefix.length == 4
|
80
75
|
|
81
|
-
if
|
76
|
+
if data_type.eql? 'positive_set'
|
82
77
|
account_no = sprintf('%016d', rand(10**16))
|
83
|
-
num = bank_prefix + account_no +
|
78
|
+
num = bank_prefix + account_no + '252100'
|
84
79
|
control_digit = sprintf('%02d', 98 - (num.to_i % 97))
|
85
80
|
number = control_digit + bank_prefix + account_no
|
86
81
|
else
|
@@ -94,4 +89,4 @@ module GenerateData
|
|
94
89
|
end
|
95
90
|
end
|
96
91
|
end
|
97
|
-
World(GenerateData)
|
92
|
+
World(GenerateData)
|
data/lib/cuculungwa/utils.rb
CHANGED
@@ -1,6 +1,6 @@
|
|
1
1
|
module Utils
|
2
2
|
def click(element)
|
3
|
-
if @app.config['capybara']['browser']=='phantomjs'
|
3
|
+
if @app.config['capybara']['browser'] == 'phantomjs'
|
4
4
|
element.trigger('click')
|
5
5
|
else
|
6
6
|
element.click
|
@@ -12,36 +12,33 @@ module Utils
|
|
12
12
|
end
|
13
13
|
|
14
14
|
def take_screenshot
|
15
|
-
save_screenshot(@app.config['capybara']['save_and_open_page_path'] + "/manual_screenshots/#{Time.now.to_i}.png", :full => true)
|
16
15
|
end
|
17
16
|
|
18
17
|
def wait_for_expected_result(timespan = @app.config['capybara']['default_wait_time'], exception_type = RSpec::Expectations::ExpectationNotMetError)
|
19
18
|
# Default setting: get default wait time from config.yml
|
20
19
|
_then = Time.now
|
21
|
-
|
20
|
+
loop do
|
22
21
|
begin
|
23
22
|
yield
|
24
23
|
break
|
25
24
|
rescue exception_type => e
|
26
25
|
# Expectations were not met, check if we timed out, otherwise try one more time after 10ms
|
27
|
-
if Time.now > _then + timespan
|
28
|
-
puts
|
26
|
+
if Time.now > _then + timespan
|
27
|
+
puts 'Timeout.'
|
29
28
|
raise e
|
30
29
|
end
|
31
30
|
sleep 0.01
|
32
31
|
end
|
33
32
|
end
|
34
|
-
#for debug purpose
|
35
|
-
#puts "Waiting for expected result took #{Time.now - _then}s."
|
33
|
+
# for debug purpose
|
34
|
+
# puts "Waiting for expected result took #{Time.now - _then}s."
|
36
35
|
end
|
37
36
|
|
38
37
|
def I18n_first(text)
|
39
|
-
|
40
|
-
|
41
|
-
|
42
|
-
|
43
|
-
return text
|
44
|
-
end
|
38
|
+
text = I18n.t(text, raise: I18n::MissingTranslationData)
|
39
|
+
return text
|
40
|
+
rescue I18n::MissingTranslationData
|
41
|
+
return text
|
45
42
|
end
|
46
43
|
|
47
44
|
def wait_for_ajax
|
metadata
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: cuculungwa
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version: 0.0.
|
4
|
+
version: 0.0.79
|
5
5
|
platform: ruby
|
6
6
|
authors:
|
7
7
|
- Michal Kaftanski
|
@@ -11,7 +11,7 @@ authors:
|
|
11
11
|
autorequire:
|
12
12
|
bindir: bin
|
13
13
|
cert_chain: []
|
14
|
-
date: 2016-
|
14
|
+
date: 2016-02-22 00:00:00.000000000 Z
|
15
15
|
dependencies:
|
16
16
|
- !ruby/object:Gem::Dependency
|
17
17
|
name: aruba
|
@@ -271,3 +271,4 @@ signing_key:
|
|
271
271
|
specification_version: 4
|
272
272
|
summary: Cuculungwa testing framework
|
273
273
|
test_files: []
|
274
|
+
has_rdoc:
|