eyes_selenium 1.35.0 → 1.36.0

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,15 +1,15 @@
1
1
  ---
2
2
  !binary "U0hBMQ==":
3
3
  metadata.gz: !binary |-
4
- YzEwYjZmOWVkMjcxNzQ3NTNkNGE0NDRmODQ1NTcwOGU1NDM4ZWViOA==
4
+ MTVkZmRmNjA5MWI2NWVjNzliNTI1NDY5NDJmMmQxYmMyOGNjZWIxNA==
5
5
  data.tar.gz: !binary |-
6
- ZTA3Y2UwM2Q4OTc1MjQwMTMwNjlkZmE3MjUxNmMyZTg1OWM3ZDViNA==
6
+ ZTdlMmEyNDFjYTllNzk3YjVkMGM2YjE0OGQ3YzliODU4MDk2N2UyNw==
7
7
  SHA512:
8
8
  metadata.gz: !binary |-
9
- YzNjOWVhYmNhYzZhYmExYTczZjM2OTZjN2U3YmQyNzM5ZTMxYTgxOWI5NzMy
10
- N2U1NjNhZDI4MjZkN2EyNmRjMjYzNGIwODIzNzQ3NmM3ZDM5NzQ3ZWM1MmY2
11
- NTA5ZjAyNmMwMjFiYWQyMDI2ZGExZjBlYzVhYjJkNTk0NDlmNmI=
9
+ YTM0MzYyZmMzYzk0MzU1MzBmYTMyZjVhMmIzNmQyMzc0YmY4NDVkZGEyZGFm
10
+ ZjUwNjhjYzUwMTFlM2ViYzY3YjM3N2M5MjQ0NWIxMGY5ZjBiODZiYjc2NDNl
11
+ YTcwZDJhNzdlYmJjZGZkMWRmZmEzNjVhZWI4YWRmYTEzMTRkMTQ=
12
12
  data.tar.gz: !binary |-
13
- MDA0YjljYTNmNmE2MjY1MDRmYWFjODFhMDM0NDNjNThkZTcwYmE1NTg5ZTlm
14
- OTE5ZmJjZGIwZGJlYTFmZWQwYmM4YmE5Y2VkYjliZWM5NzA3OWMxODc0Yjdk
15
- YzlhZDJkZTdlMTdiMTZlMjJkZWFkYTZjMTc1NDE3ZjI5NmQzMzA=
13
+ ZWU2Yjk4YzNlOTZlZDVjNWNjNzA0Njc1ZGI1MjBhODU1MzhmMzI5ODNiNzhj
14
+ NTUyYWRlNWRiMzQyMmE0MWEzZjRlZWU5NGZiM2NkZTgwYWQxMGE1MzAwZTUx
15
+ ZjBjN2MzZWIwZWEzMWQ5NGNjODg5ZmFkMzllMDQ0ZDY4NTE1Y2I=
@@ -33,9 +33,34 @@ class Applitools::AgentConnector
33
33
 
34
34
  def stop_session(session, aborted=nil, save=false)
35
35
  self.class.headers 'Content-Type' => 'application/json'
36
- res = self.class.delete(uri + "/#{session.id}", basic_auth: auth, query: { aborted: aborted.to_s, updateBaseline: save.to_s })
36
+ res = self.class.send_long_request('stop_session') do
37
+ self.class.delete(uri + "/#{session.id}", basic_auth: auth, query: { aborted: aborted.to_s, updateBaseline: save.to_s })
38
+ end
37
39
  parsed_res = res.parsed_response
38
40
  parsed_res.delete("$id")
39
41
  Applitools::TestResults.new(*parsed_res.values)
40
42
  end
43
+
44
+ private
45
+ ##
46
+ # Static method for sending long running requests
47
+ # Args:
48
+ # name: (String) name of the method being executed
49
+ # request_block: (block) The actual block to be executed. Will be called using "yield"
50
+ def self.send_long_request(name, &request_block)
51
+ delay = 2 # seconds
52
+
53
+ headers 'Eyes-Expect' => '202-accepted'
54
+ while true
55
+ # Date should be in RFC 1123 format
56
+ headers 'Eyes-Date' => Time.now.utc.strftime('%a, %d %b %Y %H:%M:%S GMT')
57
+ res = yield
58
+ if res.code != 202
59
+ return res
60
+ end
61
+ EyesLogger.debug "#{name}: Still running... Retrying in #{delay}s"
62
+ sleep delay
63
+ delay = [10, (delay*1.5).round].min
64
+ end
65
+ end
41
66
  end
@@ -1,3 +1,3 @@
1
1
  module Applitools
2
- VERSION = '1.35.0'
2
+ VERSION = '1.36.0'
3
3
  end
metadata CHANGED
@@ -1,14 +1,14 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: eyes_selenium
3
3
  version: !ruby/object:Gem::Version
4
- version: 1.35.0
4
+ version: 1.36.0
5
5
  platform: ruby
6
6
  authors:
7
7
  - Applitools team
8
8
  autorequire:
9
9
  bindir: bin
10
10
  cert_chain: []
11
- date: 2014-04-12 00:00:00.000000000 Z
11
+ date: 2014-05-03 00:00:00.000000000 Z
12
12
  dependencies:
13
13
  - !ruby/object:Gem::Dependency
14
14
  name: selenium-webdriver