toxiproxy 1.0.3 → 2.0.0

Sign up to get free protection for your applications and to get access to all the features.
checksums.yaml CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
- SHA1:
3
- metadata.gz: dd7714ade2b3e653fabba43c36dc025fd36a6377
4
- data.tar.gz: bc0fa5de828b70a14da8797ce672245bfd91c760
2
+ SHA256:
3
+ metadata.gz: 87ada93994d565f7179ecf9b542e20d98c0e8d0a147ebb96ad9a6db91a1af343
4
+ data.tar.gz: 2f4a626ed0b4db30f596963485749b22a754695bea9d94de3ee872f233eaae1d
5
5
  SHA512:
6
- metadata.gz: 0247200fb5ee43f9d46d3a73af053ba4b5bddd5ce238eec0d8cc6e32415363f14c6053abafc52b42d46bddc51ff0f6c74d0a0b4a86261e43c58ffc44d8f62ffe
7
- data.tar.gz: c08a860ae38e8e375478df95d891b351614bf766dca25d582a076f8a55b871a1b2630d5cbe2678555f2a9b17d532ec8dcdb4cf22fafff57dd30b3d12a07eb67e
6
+ metadata.gz: e95bfdfa0351fad12ea9b5baf9020ec34bb1948e3d1d97afa9dcc1fc231d15520b1b937a493a7e3a87bdb4ec8e7f42234e22f5318c8fc564ceb7dd8bc7609348
7
+ data.tar.gz: 944defb2bfee5378844b38a51400164be70f0ee39806d6f5cded3585ddd61ac6f4bb75229786f948bd5b3afc35a437d09c326575f0ac4e89f24a7f880f2badc9
@@ -0,0 +1,2 @@
1
+ enabled:
2
+ - cla
@@ -0,0 +1,19 @@
1
+ name: Run tests
2
+ on: [push]
3
+ jobs:
4
+ test:
5
+ runs-on: ubuntu-latest
6
+ strategy:
7
+ matrix:
8
+ ruby: [ '2.5', '2.6', '2.7' ]
9
+ name: Ruby ${{ matrix.ruby }}
10
+ steps:
11
+ - uses: actions/checkout@v2
12
+ - uses: ruby/setup-ruby@v1
13
+ with:
14
+ ruby-version: ${{ matrix.ruby }}
15
+ bundler-cache: true # runs 'bundle install' and caches installed gems automatically
16
+ - name: Install and start toxiproxy
17
+ run: ./bin/start-toxiproxy.sh
18
+ - name: Run tests
19
+ run: bundle exec rake test
@@ -98,14 +98,23 @@ class Toxiproxy
98
98
  def self.populate(*proxies)
99
99
  proxies = proxies.first if proxies.first.is_a?(Array)
100
100
 
101
- proxies.map { |proxy|
102
- existing = find_by_name(proxy[:name])
103
- if existing && (existing.upstream != proxy[:upstream] || existing.listen != proxy[:listen])
104
- existing.destroy
105
- existing = false
106
- end
107
- self.create(proxy) unless existing
108
- }.compact
101
+ request = Net::HTTP::Post.new("/populate")
102
+ request.body = proxies.to_json
103
+ request["Content-Type"] = "application/json"
104
+
105
+ response = http_request(request)
106
+ assert_response(response)
107
+
108
+ proxies = JSON.parse(response.body).fetch('proxies', []).map do |attrs|
109
+ self.new({
110
+ upstream: attrs["upstream"],
111
+ listen: attrs["listen"],
112
+ name: attrs["name"],
113
+ enabled: attrs["enabled"]
114
+ })
115
+ end
116
+
117
+ ProxyCollection.new(proxies)
109
118
  end
110
119
 
111
120
  def self.running?
@@ -1,3 +1,3 @@
1
1
  class Toxiproxy
2
- VERSION = "1.0.3"
2
+ VERSION = "2.0.0"
3
3
  end
@@ -358,26 +358,31 @@ class ToxiproxyTest < MiniTest::Unit::TestCase
358
358
  end
359
359
 
360
360
  def test_populate_creates_proxies_update_upstream
361
- proxies = [{
362
- name: "test_toxiproxy_populate1",
361
+ proxy_name = "test_toxiproxy_populate1"
362
+ proxies_config = [{
363
+ name: proxy_name,
363
364
  upstream: "localhost:3306",
364
365
  listen: "localhost:22222",
365
366
  },
366
367
  ]
367
368
 
368
- proxies = Toxiproxy.populate(proxies)
369
+ proxies = Toxiproxy.populate(proxies_config)
369
370
 
370
- proxies = [{
371
- name: "test_toxiproxy_populate1",
371
+ proxies_config = [{
372
+ name: proxy_name,
372
373
  upstream: "localhost:3307",
373
374
  listen: "localhost:22222",
374
375
  },
375
376
  ]
376
377
 
377
- proxies2 = Toxiproxy.populate(proxies)
378
+ proxies2 = Toxiproxy.populate(proxies_config)
379
+
380
+ refute_equal proxies.find(name: proxy_name).first.upstream,
381
+ proxies2.find(name: proxy_name).first.upstream
378
382
 
379
- assert_equal proxies.first[:upstream], proxies2.first.upstream
380
- assert_proxy_available(proxies2.first)
383
+ proxies2.each do |proxy|
384
+ assert_proxy_available(proxy)
385
+ end
381
386
  end
382
387
 
383
388
  def test_running_helper
@@ -10,11 +10,13 @@ Gem::Specification.new do |spec|
10
10
  spec.homepage = "https://github.com/Shopify/toxiproxy"
11
11
  spec.license = "MIT"
12
12
 
13
+ spec.metadata['allowed_push_host'] = 'https://rubygems.org'
14
+
13
15
  spec.files = `git ls-files`.split("\n")
14
16
  spec.test_files = `git ls-files -- {test,spec,features}/*`.split("\n")
15
17
  spec.require_paths = ["lib"]
16
18
 
17
- spec.add_development_dependency "bundler", "~> 1.3"
19
+ spec.add_development_dependency "bundler"
18
20
  spec.add_development_dependency "minitest"
19
21
  spec.add_development_dependency "rake"
20
22
  spec.add_development_dependency "webmock"
metadata CHANGED
@@ -1,7 +1,7 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: toxiproxy
3
3
  version: !ruby/object:Gem::Version
4
- version: 1.0.3
4
+ version: 2.0.0
5
5
  platform: ruby
6
6
  authors:
7
7
  - Simon Eskildsen
@@ -9,22 +9,22 @@ authors:
9
9
  autorequire:
10
10
  bindir: bin
11
11
  cert_chain: []
12
- date: 2018-07-27 00:00:00.000000000 Z
12
+ date: 2020-10-27 00:00:00.000000000 Z
13
13
  dependencies:
14
14
  - !ruby/object:Gem::Dependency
15
15
  name: bundler
16
16
  requirement: !ruby/object:Gem::Requirement
17
17
  requirements:
18
- - - "~>"
18
+ - - ">="
19
19
  - !ruby/object:Gem::Version
20
- version: '1.3'
20
+ version: '0'
21
21
  type: :development
22
22
  prerelease: false
23
23
  version_requirements: !ruby/object:Gem::Requirement
24
24
  requirements:
25
- - - "~>"
25
+ - - ">="
26
26
  - !ruby/object:Gem::Version
27
- version: '1.3'
27
+ version: '0'
28
28
  - !ruby/object:Gem::Dependency
29
29
  name: minitest
30
30
  requirement: !ruby/object:Gem::Requirement
@@ -73,13 +73,14 @@ executables: []
73
73
  extensions: []
74
74
  extra_rdoc_files: []
75
75
  files:
76
+ - ".github/probots.yml"
77
+ - ".github/workflows/ci.yml"
76
78
  - ".gitignore"
77
79
  - Gemfile
78
80
  - LICENSE
79
81
  - README.md
80
82
  - Rakefile
81
83
  - bin/start-toxiproxy.sh
82
- - circle.yml
83
84
  - lib/toxiproxy.rb
84
85
  - lib/toxiproxy/proxy_collection.rb
85
86
  - lib/toxiproxy/toxic.rb
@@ -92,7 +93,8 @@ files:
92
93
  homepage: https://github.com/Shopify/toxiproxy
93
94
  licenses:
94
95
  - MIT
95
- metadata: {}
96
+ metadata:
97
+ allowed_push_host: https://rubygems.org
96
98
  post_install_message:
97
99
  rdoc_options: []
98
100
  require_paths:
@@ -108,8 +110,7 @@ required_rubygems_version: !ruby/object:Gem::Requirement
108
110
  - !ruby/object:Gem::Version
109
111
  version: '0'
110
112
  requirements: []
111
- rubyforge_project:
112
- rubygems_version: 2.6.14
113
+ rubygems_version: 3.0.3
113
114
  signing_key:
114
115
  specification_version: 4
115
116
  summary: Ruby library for Toxiproxy
data/circle.yml DELETED
@@ -1,11 +0,0 @@
1
- dependencies:
2
- override:
3
- - bundle install
4
- - ./bin/start-toxiproxy.sh
5
- test:
6
- override:
7
- - bundle exec rake test
8
-
9
- machine:
10
- ruby:
11
- version: 2.4.0