agent_q 0.0.15 → 0.0.17

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: 190bde1346758f6afc576075de72e66f01555106e330fe1feb238cf700044fa6
4
- data.tar.gz: 774ac6cd804a113dc61e18d321e342ea6b25faa91bbb97c3ee367ba62af82152
3
+ metadata.gz: aed3c3ba07adf20d25faad701cf7602f555222261e85964a10a2e9a203684854
4
+ data.tar.gz: 56cecb1453e333cfca334b557a699a94bf00898173f1d51ac8c125e3f58b0fa2
5
5
  SHA512:
6
- metadata.gz: 386ae261dbc8883bb2be439cc22baf32b45f8a94fe8a189c39533b0b4168611dcae0cb1a1b10ea3c5eac7f3f9771ff61ed392c9091fdd5ef6b06cc8d6a97d5b2
7
- data.tar.gz: 72925644e67be70b4face66fb8c9072fb8a378781839f1b90f91d58d44376216ae457f2c5bbd96b9d7eba02a90b7b63b229f10b4d6c2e6f48cbbdcffa539881d
6
+ metadata.gz: cc6190c61c8609c5617dbaba1d1537b624b58096d9234ec0584c2e8f36ac02129d2e471cdfdb2537f7f0920d181e148c7f7853ba99b4bced8b28c836a97e5842
7
+ data.tar.gz: b6dc6764d7094cc891bcd711849a2c749eb47d6355f28e9197e208396b6f1e7d84d01aa41d7d6b358dbdf4a99c3f6aef0e7bc86c02502e75b588301e72c88d92
data/bin/agent_q CHANGED
@@ -1,13 +1,25 @@
1
1
  #!/usr/bin/env ruby
2
2
  require 'rubygems'
3
- require_relative '../lib/agent_q'
3
+ require_relative '../lib/check_case'
4
+ require_relative '../lib/run_queries'
4
5
 
5
- quepid_case = ARGV[0]
6
- threshold_score = ARGV[1]
7
- username = ARGV[2]
8
- password = ARGV[3]
9
- quepid_url = ARGV[4]
6
+ subcommand = ARGV[0]
10
7
 
8
+ if subcommand == 'check-case'
9
+ quepid_case = ARGV[1]
10
+ threshold_score = ARGV[2]
11
+ username = ARGV[3]
12
+ password = ARGV[4]
13
+ quepid_url = ARGV[5]
14
+
15
+ CheckCase.new(quepid_case, threshold_score, username, password, quepid_url).run
16
+ end
11
17
 
12
-
13
- AgentQ.new(quepid_case, threshold_score, username, password, quepid_url).run
18
+ if subcommand == 'run-queries'
19
+ quepid_case = ARGV[1]
20
+ username = ARGV[2]
21
+ password = ARGV[3]
22
+ quepid_url = ARGV[4]
23
+
24
+ RunQueries.new(quepid_case, username, password, quepid_url).run
25
+ end
@@ -5,7 +5,7 @@ require 'capybara/dsl'
5
5
  require 'capybara/cuprite'
6
6
  require 'json'
7
7
 
8
- class AgentQ
8
+ class CheckCase
9
9
  include Capybara::DSL
10
10
 
11
11
 
@@ -15,8 +15,13 @@ class AgentQ
15
15
  @username = username
16
16
  @password = password
17
17
  @quepid_url = quepid_url
18
+
19
+ Capybara.register_driver :cuprite do |app|
20
+ Capybara::Cuprite::Driver.new(app, timeout: 30) # Increase timeout to 30 seconds
21
+ end
18
22
 
19
23
  Capybara.default_driver = :cuprite
24
+ Capybara.default_max_wait_time = 30 # Increase timeout to 30 seconds
20
25
  #Capybara.app_host = @quepid_url
21
26
  end
22
27
 
@@ -32,17 +37,17 @@ class AgentQ
32
37
 
33
38
  click_button('Sign in')
34
39
  end
35
-
36
- #within(:xpath, "/html/body/div[3]/div/div/div[1]/div[1]/div/form") do
37
- # fill_in('Password', with: @password)
38
- #end
39
40
  #save_screenshot('quepid_login.png')
40
41
 
42
+ visit("#{@quepid_url}/case/#{@quepid_case}")
41
43
 
44
+ page.has_css?('.search-feedback', visible: true, wait: Capybara.default_max_wait_time)
45
+
46
+ #save_screenshot('quepid_case_queries2.png')
42
47
 
43
- sleep(20)
44
-
45
- #save_screenshot('quepid_dashboard.png')
48
+ page.has_no_css?('.search-feedback', wait: Capybara.default_max_wait_time)
49
+
50
+ #save_screenshot('quepid_case.png')
46
51
 
47
52
  visit "#{@quepid_url}/api/cases/#{@quepid_case}/scores/all.json"
48
53
  html = page.html
@@ -64,7 +69,7 @@ class AgentQ
64
69
  exit 1
65
70
  else
66
71
  score = case_results['scores'].first['score']
67
- if score.to_i >= @threshold_score.to_i
72
+ if score.to_f >= @threshold_score.to_f
68
73
  puts "Case #{case_name} (#{@quepid_case}) scored #{score}, \e[32mwhich meets the threshold of #{@threshold_score}\e[0m"
69
74
  exit 0
70
75
  else
@@ -0,0 +1,64 @@
1
+ # Inspired by http://ngauthier.com/2014/06/scraping-the-web-with-ruby.html
2
+
3
+ require 'capybara'
4
+ require 'capybara/dsl'
5
+ require 'capybara/cuprite'
6
+ require 'json'
7
+
8
+ class RunQueries
9
+ include Capybara::DSL
10
+
11
+
12
+ def initialize(quepid_case, username, password, quepid_url)
13
+ @quepid_case = quepid_case
14
+ @username = username
15
+ @password = password
16
+ @quepid_url = quepid_url
17
+
18
+ Capybara.register_driver :cuprite do |app|
19
+ Capybara::Cuprite::Driver.new(app, timeout: 30) # Increase timeout to 30 seconds
20
+ end
21
+
22
+ Capybara.default_driver = :cuprite
23
+ Capybara.default_max_wait_time = 30 # Increase timeout to 30 seconds
24
+ # Capybara.app_host = @quepid_url
25
+ end
26
+
27
+ def run
28
+
29
+ # we go direct to the case, which then prompts the login process. That way we only
30
+ # score the requested case
31
+ visit("#{@quepid_url}/case/#{@quepid_case}/query/0")
32
+ save_screenshot('quepid.png')
33
+ within('#login') do
34
+ fill_in('user_email', with: @username)
35
+ fill_in('user_password', with: @password)
36
+
37
+ click_button('Sign in')
38
+ end
39
+ save_screenshot('quepid_login.png')
40
+
41
+
42
+
43
+ visit("#{@quepid_url}/case/#{@quepid_case}/query/0")
44
+
45
+
46
+
47
+ save_screenshot('quepid_case_queries.png')
48
+
49
+ page.has_css?('.search-feedback', visible: true, wait: 60)
50
+
51
+ save_screenshot('quepid_case_queries2.png')
52
+
53
+ page.has_no_css?('.search-feedback', wait: 60)
54
+
55
+ save_screenshot('quepid_case_queries3.png')
56
+
57
+ content = find('.snapshot-payload').text
58
+
59
+ puts content
60
+
61
+
62
+ end
63
+
64
+ end
metadata CHANGED
@@ -1,14 +1,14 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: agent_q
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.0.15
4
+ version: 0.0.17
5
5
  platform: ruby
6
6
  authors:
7
7
  - Eric Pugh
8
8
  autorequire:
9
9
  bindir: bin
10
10
  cert_chain: []
11
- date: 2023-06-09 00:00:00.000000000 Z
11
+ date: 2024-03-06 00:00:00.000000000 Z
12
12
  dependencies:
13
13
  - !ruby/object:Gem::Dependency
14
14
  name: capybara
@@ -80,7 +80,8 @@ extensions: []
80
80
  extra_rdoc_files: []
81
81
  files:
82
82
  - bin/agent_q
83
- - lib/agent_q.rb
83
+ - lib/check_case.rb
84
+ - lib/run_queries.rb
84
85
  homepage: http://rubygems.org/gems/agent_q
85
86
  licenses:
86
87
  - MIT