taf 0.4.2 → 0.4.4

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 CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  SHA256:
3
- metadata.gz: 4c2a7cbae2cd4f9ec43c57b441f2182a8477cb2ce763964800aa9b3b0500f1ff
4
- data.tar.gz: 9f7343f0a1edc9ff6df54ec04645e48e2fcdc18667a38458c2d9490a53b19f65
3
+ metadata.gz: 0501ee31ac5742b113c9e33b359bc324dae96b87e7a2caf82495113d6e6a3222
4
+ data.tar.gz: f9021907fd6dec231fe807e0afd32e2879ce44a9789f0bfd89ab62febb326e05
5
5
  SHA512:
6
- metadata.gz: b5b3dbe44aebbf959b489b05e82e73599c887863b544927b6a18aa2f8d642bd23de47080f5b11a583cb7083ee695b08bba8926cc753b9309d6851510d3e479c0
7
- data.tar.gz: f7b6711f47c6f3094c5ae7307f759667e49011cc68ff1184c4af263f4cfc0a9b56e8e2f3552fa6655de0e8b8d80d1fd48d688dc0b5c1550eb9853646d1aba6f0
6
+ metadata.gz: 527cb4c93cce55d055bf5bb3d28026db1d5733ad8ba11c9bd91e2b091e1cedc3851169f889a2a6f4dc8ea6f932bbeb7f9fd23eb87e1f819c296ce76b106d8596
7
+ data.tar.gz: 16061dd456c4449a343261651e50b1c9de3509ef982acb965f9778a4f5f3d3bcd4a9abd9f1abeb757bcbdfb5921da21c92418939a898c60632a6ce1125c20d47
data/lib/taf.rb CHANGED
@@ -8,18 +8,18 @@ module Taf
8
8
  class BrowserFailedOpen < TafError; end
9
9
  class LoginTypeFailed < TafError; end
10
10
 
11
- require 'selenium-webdriver'
12
- require 'watir'
13
- require 'rubygems'
11
+ require 'colored'
14
12
  require 'fileutils'
13
+ require 'faraday'
14
+ require 'json'
15
15
  require 'logger'
16
- require 'net/ping'
17
- require 'time_difference'
18
- require 'colored'
16
+ require 'open3'
19
17
  require 'optparse'
20
- require 'fileutils'
18
+ require 'rubygems'
21
19
  require 'securerandom'
22
- require 'json'
20
+ require 'selenium-webdriver'
21
+ require 'time_difference'
22
+ require 'watir'
23
23
 
24
24
  require 'taf/browser'
25
25
  require 'taf/cmd_line'
@@ -22,7 +22,7 @@ module Taf
22
22
 
23
23
  def self.browser(browser)
24
24
  @browser_type = browser
25
- unless ['chrome', 'chrome-headless', 'firefox', 'firefox-headless']
25
+ unless %w[chrome chrome-headless firefox firefox-headless]
26
26
  .include?(@browser_type)
27
27
  Taf::MyLog.log.warn 'A valid Browser has not been supplied as a' \
28
28
  ' command-line parameter as expected'
@@ -9,8 +9,10 @@ module Taf
9
9
  def initialize(step_attributes)
10
10
  @value = step_attributes[:testvalue]
11
11
  @value2 = step_attributes[:testvalue2]
12
+ @value3 = step_attributes[:testvalue3]
12
13
  @locate = step_attributes[:locate]
13
14
  @locate2 = step_attributes[:locate2]
15
+ @locate3 = step_attributes[:locate3]
14
16
  end
15
17
 
16
18
  def self.register(name)
@@ -45,7 +47,7 @@ module Taf
45
47
  end
46
48
 
47
49
  def mem_word_check(user, b_title_sucess)
48
- if Taf::Browser.b.title.eql?('Memorable word')
50
+ if Taf::Browser.b.title.eql?('Memorable word Portal')
49
51
  portal_mem_word(user, b_title_sucess)
50
52
  elsif Taf::Browser.b.title.eql?(b_title_sucess)
51
53
  Taf::MyLog.log.info("User: #{user} has logged in successful.")
@@ -27,12 +27,18 @@ module Taf
27
27
  ele = Taf::Browser.b.send(@elms[index], "#{@locate}": @value)
28
28
 
29
29
  ele.wait_until(&:exists?)
30
- (ele.value == @value2)
31
- Taf::MyLog.log.info("Textbox: #{@value} has correct value: #{value2}")
32
- true
33
- rescue StandardError
34
- Taf::MyLog.log.warn("Textbox: #{@value} does not exist")
35
- false
30
+
31
+ if ele.value == @value2
32
+ Taf::MyLog.log.info(
33
+ "Textbox: #{@value} has correct value: #{@value2}"
34
+ )
35
+ true
36
+ else
37
+ Taf::MyLog.log.warn(
38
+ "Textbox: got #{ele.value}, expected #{@value2}"
39
+ )
40
+ false
41
+ end
36
42
  end
37
43
  end
38
44
  end
@@ -0,0 +1,35 @@
1
+ # frozen_string_literal: true
2
+
3
+ module Taf
4
+ module TestSteps
5
+ module Handlers
6
+ # Generate an RSA token for use with 2FA login.
7
+ class GenerateToken < Base
8
+ register :generate_token
9
+
10
+ def perform
11
+ raise 'TOKEN_SEED env var not set' unless ENV['TOKEN_SEED']
12
+
13
+ # Generate token using the seed from the environment.
14
+ _, stdout, stderr, wait_thr = Open3.popen3(
15
+ 'stoken', '--file', ENV['TOKEN_SEED']
16
+ )
17
+
18
+ raise stderr.gets unless wait_thr.value.success?
19
+
20
+ Taf::Browser.b.send(:text_field, "#{@locate}": @value)
21
+ .wait_until(&:exists?).send_keys stdout.gets
22
+
23
+ stdout.close
24
+ stderr.close
25
+
26
+ true
27
+ rescue StandardError => e
28
+ Taf::MyLog.log.warn("Error generating token: #{e}")
29
+
30
+ false
31
+ end
32
+ end
33
+ end
34
+ end
35
+ end
@@ -12,27 +12,40 @@ module Taf
12
12
  user = ENV[user.to_s] if ENV[user.to_s]
13
13
 
14
14
  login_user(user)
15
- rescue StandardError
16
- Taf::MyLog.log.error "unable to find login: #{@value}"
17
- raise Taf::LoginTypeFailed
18
15
  end
19
16
 
20
17
  def login_user(user)
21
18
  case @value.downcase
19
+ when 'admin_portal_login' then admin_portal_login(user)
22
20
  when 'portal_login' then portal_login(user)
21
+ when 'sint_login' then sint_login(user)
23
22
  when 'sso_login' then sso_login(user)
24
23
  else
25
- Taf::MyLog.log.error 'Not a valid Login'
24
+ Taf::MyLog.log.error "unable to find login: #{@value}"
25
+ raise Taf::LoginTypeFailed
26
26
  end
27
27
  end
28
28
 
29
29
  private
30
30
 
31
+ def admin_portal_login(user)
32
+ url = ENV['ADMINL_URL']
33
+ pass = ENV['ADMIN_USER_PASS']
34
+ b_title = 'Log in Portal Admin'
35
+ b_title_sucess = 'Home Admin Portal'
36
+ user_elm = 'admin_username'
37
+ pass_elm = 'admin_password'
38
+
39
+ Taf::Browser.b.goto(url)
40
+ login_process(b_title, user_elm, pass_elm, user, pass)
41
+ login_check(b_title_sucess, user)
42
+ end
43
+
31
44
  def portal_login(user)
32
45
  url = ENV['PORTAL_URL']
33
46
  pass = ENV['PORTAL_USER_PASS']
34
- b_title = 'Log in'
35
- b_title_sucess = 'Home'
47
+ b_title = 'Log in Portal'
48
+ b_title_sucess = 'Home Portal'
36
49
  user_elm = 'user_email'
37
50
  pass_elm = 'user_password'
38
51
 
@@ -50,6 +63,18 @@ module Taf
50
63
  user_elm = 'username'
51
64
  pass_elm = 'password'
52
65
 
66
+ login_process(b_title, user_elm, pass_elm, user, pass)
67
+ login_check(b_title_sucess, user)
68
+ end
69
+
70
+ def sint_login(user)
71
+ url = ENV['SINT_URL']
72
+ pass = ENV['SINT_USER_PASS']
73
+ b_title = 'SINT'
74
+ b_title_sucess = 'SINT'
75
+ user_elm = 'user_username'
76
+ pass_elm = 'user_password'
77
+
53
78
  Taf::Browser.b.goto(url)
54
79
  login_process(b_title, user_elm, pass_elm, user, pass)
55
80
  login_check(b_title_sucess, user)
@@ -7,19 +7,21 @@ module Taf
7
7
  class PingTest < Base
8
8
  register :ping_test
9
9
 
10
- # TODO: retry every 'x' until timeout reached.
11
10
  def perform
12
- check = Net::Ping::HTTP.new(@value)
13
-
14
- check.ping?
15
- sleep 5
16
- if check.ping?
17
- Taf::MyLog.log.info("pinged: #{@value}")
18
- return true
11
+ tries ||= 20
12
+ Faraday.get(@value)
13
+ rescue Faraday::Error
14
+ if (tries -= 1).positive?
15
+ sleep 1
16
+ puts "Failed to ping: #{@value} - Retries left: #{tries}"
17
+ retry
19
18
  else
20
19
  Taf::MyLog.log.warn("Failed to ping: #{@value}")
21
- return false
20
+ false
22
21
  end
22
+ else
23
+ Taf::MyLog.log.info("Pinged successfully: #{@value}")
24
+ true
23
25
  end
24
26
  end
25
27
  end
@@ -1,5 +1,5 @@
1
1
  # frozen_string_literal: true
2
2
 
3
3
  module Taf
4
- VERSION = '0.4.2'
4
+ VERSION = '0.4.4'
5
5
  end
metadata CHANGED
@@ -1,14 +1,14 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: taf
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.4.2
4
+ version: 0.4.4
5
5
  platform: ruby
6
6
  authors:
7
7
  - Andy Perrett
8
8
  autorequire:
9
9
  bindir: bin
10
10
  cert_chain: []
11
- date: 2019-06-17 00:00:00.000000000 Z
11
+ date: 2019-08-15 00:00:00.000000000 Z
12
12
  dependencies:
13
13
  - !ruby/object:Gem::Dependency
14
14
  name: bundler
@@ -16,14 +16,28 @@ dependencies:
16
16
  requirements:
17
17
  - - "~>"
18
18
  - !ruby/object:Gem::Version
19
- version: '1.16'
19
+ version: '2.02'
20
20
  type: :development
21
21
  prerelease: false
22
22
  version_requirements: !ruby/object:Gem::Requirement
23
23
  requirements:
24
24
  - - "~>"
25
25
  - !ruby/object:Gem::Version
26
- version: '1.16'
26
+ version: '2.02'
27
+ - !ruby/object:Gem::Dependency
28
+ name: rspec
29
+ requirement: !ruby/object:Gem::Requirement
30
+ requirements:
31
+ - - "~>"
32
+ - !ruby/object:Gem::Version
33
+ version: '3.8'
34
+ type: :development
35
+ prerelease: false
36
+ version_requirements: !ruby/object:Gem::Requirement
37
+ requirements:
38
+ - - "~>"
39
+ - !ruby/object:Gem::Version
40
+ version: '3.8'
27
41
  - !ruby/object:Gem::Dependency
28
42
  name: bundler-audit
29
43
  requirement: !ruby/object:Gem::Requirement
@@ -53,47 +67,47 @@ dependencies:
53
67
  - !ruby/object:Gem::Version
54
68
  version: '1.2'
55
69
  - !ruby/object:Gem::Dependency
56
- name: json
70
+ name: faraday
57
71
  requirement: !ruby/object:Gem::Requirement
58
72
  requirements:
59
73
  - - "~>"
60
74
  - !ruby/object:Gem::Version
61
- version: '2.2'
75
+ version: '0.15'
62
76
  type: :runtime
63
77
  prerelease: false
64
78
  version_requirements: !ruby/object:Gem::Requirement
65
79
  requirements:
66
80
  - - "~>"
67
81
  - !ruby/object:Gem::Version
68
- version: '2.2'
82
+ version: '0.15'
69
83
  - !ruby/object:Gem::Dependency
70
- name: logger
84
+ name: json
71
85
  requirement: !ruby/object:Gem::Requirement
72
86
  requirements:
73
87
  - - "~>"
74
88
  - !ruby/object:Gem::Version
75
- version: '1.2'
89
+ version: '2.2'
76
90
  type: :runtime
77
91
  prerelease: false
78
92
  version_requirements: !ruby/object:Gem::Requirement
79
93
  requirements:
80
94
  - - "~>"
81
95
  - !ruby/object:Gem::Version
82
- version: '1.2'
96
+ version: '2.2'
83
97
  - !ruby/object:Gem::Dependency
84
- name: net-ping
98
+ name: logger
85
99
  requirement: !ruby/object:Gem::Requirement
86
100
  requirements:
87
101
  - - "~>"
88
102
  - !ruby/object:Gem::Version
89
- version: '2.0'
103
+ version: '1.2'
90
104
  type: :runtime
91
105
  prerelease: false
92
106
  version_requirements: !ruby/object:Gem::Requirement
93
107
  requirements:
94
108
  - - "~>"
95
109
  - !ruby/object:Gem::Version
96
- version: '2.0'
110
+ version: '1.2'
97
111
  - !ruby/object:Gem::Dependency
98
112
  name: rubygems-update
99
113
  requirement: !ruby/object:Gem::Requirement
@@ -188,6 +202,7 @@ files:
188
202
  - lib/taf/test_steps/handlers/base/check_url.rb
189
203
  - lib/taf/test_steps/handlers/base/click_button.rb
190
204
  - lib/taf/test_steps/handlers/base/execute_system_command.rb
205
+ - lib/taf/test_steps/handlers/base/generate_token.rb
191
206
  - lib/taf/test_steps/handlers/base/handle_browser_window.rb
192
207
  - lib/taf/test_steps/handlers/base/ipause.rb
193
208
  - lib/taf/test_steps/handlers/base/list_all_dropdowns_values.rb