zold 0.31.8 → 0.31.9
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/.0pdd.yml +20 -0
- data/.github/workflows/actionlint.yml +41 -0
- data/.github/workflows/codecov.yml +23 -4
- data/.github/workflows/copyrights.yml +30 -0
- data/.github/workflows/pdd.yml +26 -3
- data/.github/workflows/rake.yml +24 -2
- data/.github/workflows/xcop.yml +21 -2
- data/.github/workflows/yamllint.yml +34 -0
- data/.gitignore +2 -1
- data/.rubocop.yml +21 -0
- data/.ruby-version +1 -1
- data/.rultor.yml +35 -5
- data/.simplecov +1 -1
- data/Dockerfile +29 -3
- data/Gemfile +10 -10
- data/Gemfile.lock +340 -0
- data/LICENSE.txt +1 -1
- data/Rakefile +9 -12
- data/bin/zold +1 -1
- data/cucumber.yml +20 -0
- data/deploy.sh +20 -0
- data/features/step_definitions/steps.rb +1 -1
- data/features/support/env.rb +1 -1
- data/fixtures/merge/asserts.rb +1 -1
- data/fixtures/merge/into_no_wallet/assert.rb +1 -1
- data/fixtures/merge/legacy_negatives_stay/assert.rb +1 -1
- data/fixtures/merge/missed_wallets/assert.rb +1 -1
- data/fixtures/merge/negative_overwriting/assert.rb +1 -1
- data/fixtures/merge/negatives_in_between/assert.rb +1 -1
- data/fixtures/merge/random_expenses/assert.rb +1 -1
- data/fixtures/merge/simple_case/assert.rb +1 -1
- data/fixtures/merge/unconfirmed_income/assert.rb +1 -1
- data/fixtures/scripts/_head.sh +21 -1
- data/fixtures/scripts/calculate-scores.sh +19 -0
- data/fixtures/scripts/distribute-wallet.sh +19 -0
- data/fixtures/scripts/print-helps.sh +19 -0
- data/fixtures/scripts/pull-on-start.sh +19 -0
- data/fixtures/scripts/push-and-pull.sh +19 -0
- data/fixtures/scripts/redeploy-on-upgrade.sh +19 -0
- data/fixtures/scripts/spread-wallets.sh +19 -0
- data/lib/zold/age.rb +2 -2
- data/lib/zold/amount.rb +2 -2
- data/lib/zold/cached_wallets.rb +3 -3
- data/lib/zold/commands/alias.rb +20 -0
- data/lib/zold/commands/args.rb +2 -2
- data/lib/zold/commands/calculate.rb +2 -2
- data/lib/zold/commands/clean.rb +2 -2
- data/lib/zold/commands/create.rb +2 -2
- data/lib/zold/commands/diff.rb +2 -2
- data/lib/zold/commands/fetch.rb +2 -2
- data/lib/zold/commands/invoice.rb +2 -2
- data/lib/zold/commands/list.rb +2 -2
- data/lib/zold/commands/merge.rb +2 -2
- data/lib/zold/commands/next.rb +2 -2
- data/lib/zold/commands/node.rb +2 -2
- data/lib/zold/commands/pay.rb +2 -2
- data/lib/zold/commands/propagate.rb +2 -2
- data/lib/zold/commands/pull.rb +2 -2
- data/lib/zold/commands/push.rb +2 -2
- data/lib/zold/commands/remote.rb +2 -2
- data/lib/zold/commands/remove.rb +2 -2
- data/lib/zold/commands/routines/audit.rb +2 -2
- data/lib/zold/commands/routines/gc.rb +2 -2
- data/lib/zold/commands/routines/reconcile.rb +2 -2
- data/lib/zold/commands/routines/reconnect.rb +2 -2
- data/lib/zold/commands/routines/retire.rb +2 -2
- data/lib/zold/commands/routines/spread.rb +2 -2
- data/lib/zold/commands/routines.rb +2 -2
- data/lib/zold/commands/show.rb +2 -2
- data/lib/zold/commands/taxes.rb +2 -2
- data/lib/zold/commands/thread_badge.rb +3 -3
- data/lib/zold/copies.rb +2 -2
- data/lib/zold/dir_items.rb +2 -2
- data/lib/zold/endless.rb +2 -2
- data/lib/zold/gem.rb +2 -2
- data/lib/zold/hands.rb +2 -2
- data/lib/zold/head.rb +3 -3
- data/lib/zold/hexnum.rb +2 -2
- data/lib/zold/http.rb +3 -3
- data/lib/zold/hungry_wallets.rb +2 -2
- data/lib/zold/id.rb +2 -2
- data/lib/zold/json_page.rb +2 -2
- data/lib/zold/key.rb +2 -2
- data/lib/zold/log.rb +2 -2
- data/lib/zold/metronome.rb +2 -2
- data/lib/zold/node/async_entrance.rb +2 -2
- data/lib/zold/node/entrance.rb +2 -2
- data/lib/zold/node/farm.rb +2 -2
- data/lib/zold/node/farmers.rb +2 -2
- data/lib/zold/node/front.rb +3 -3
- data/lib/zold/node/journaled_pipeline.rb +2 -2
- data/lib/zold/node/nodup_entrance.rb +2 -2
- data/lib/zold/node/nospam_entrance.rb +2 -2
- data/lib/zold/node/pipeline.rb +2 -2
- data/lib/zold/node/safe_entrance.rb +2 -2
- data/lib/zold/node/soft_error.rb +2 -2
- data/lib/zold/node/spread_entrance.rb +2 -2
- data/lib/zold/node/sync_entrance.rb +2 -2
- data/lib/zold/node/trace.rb +2 -2
- data/lib/zold/patch.rb +2 -2
- data/lib/zold/prefixes.rb +2 -2
- data/lib/zold/remotes.rb +2 -2
- data/lib/zold/signature.rb +2 -2
- data/lib/zold/size.rb +2 -2
- data/lib/zold/sync_wallets.rb +2 -2
- data/lib/zold/tax.rb +2 -2
- data/lib/zold/thread_pool.rb +2 -2
- data/lib/zold/tree_wallets.rb +2 -2
- data/lib/zold/txn.rb +2 -2
- data/lib/zold/txns.rb +3 -3
- data/lib/zold/upgrades.rb +1 -1
- data/lib/zold/verbose_thread.rb +2 -2
- data/lib/zold/version.rb +3 -3
- data/lib/zold/version_file.rb +1 -1
- data/lib/zold/wallet.rb +2 -2
- data/lib/zold/wallets.rb +2 -2
- data/lib/zold.rb +2 -2
- data/test/commands/routines/test_audit.rb +4 -4
- data/test/commands/routines/test_gc.rb +8 -8
- data/test/commands/routines/test_reconcile.rb +4 -4
- data/test/commands/routines/test_reconnect.rb +3 -3
- data/test/commands/routines/test_retire.rb +3 -3
- data/test/commands/test_alias.rb +26 -6
- data/test/commands/test_calculate.rb +3 -3
- data/test/commands/test_clean.rb +10 -10
- data/test/commands/test_create.rb +3 -3
- data/test/commands/test_diff.rb +5 -5
- data/test/commands/test_fetch.rb +9 -9
- data/test/commands/test_invoice.rb +3 -3
- data/test/commands/test_list.rb +3 -3
- data/test/commands/test_merge.rb +12 -12
- data/test/commands/test_node.rb +6 -6
- data/test/commands/test_pay.rb +19 -19
- data/test/commands/test_propagate.rb +5 -5
- data/test/commands/test_pull.rb +6 -6
- data/test/commands/test_push.rb +9 -9
- data/test/commands/test_remote.rb +11 -11
- data/test/commands/test_remove.rb +10 -10
- data/test/commands/test_show.rb +3 -3
- data/test/commands/test_taxes.rb +4 -4
- data/test/fake_home.rb +2 -2
- data/test/node/fake_entrance.rb +2 -2
- data/test/node/fake_node.rb +57 -40
- data/test/node/test_async_entrance.rb +10 -10
- data/test/node/test_entrance.rb +8 -8
- data/test/node/test_farm.rb +11 -11
- data/test/node/test_farmers.rb +5 -5
- data/test/node/test_front.rb +29 -28
- data/test/node/test_nodup_entrance.rb +4 -4
- data/test/node/test_nospam_entrance.rb +3 -3
- data/test/node/test_safe_entrance.rb +4 -4
- data/test/node/test_spread_entrance.rb +8 -8
- data/test/node/test_sync_entrance.rb +4 -4
- data/test/node/test_trace.rb +2 -2
- data/test/test__helper.rb +4 -4
- data/test/test_age.rb +2 -2
- data/test/test_amount.rb +2 -2
- data/test/test_cached_wallets.rb +2 -2
- data/test/test_copies.rb +12 -12
- data/test/test_dir_items.rb +4 -4
- data/test/test_gem.rb +20 -0
- data/test/test_hands.rb +2 -2
- data/test/test_hexnum.rb +2 -2
- data/test/test_http.rb +8 -8
- data/test/test_hungry_wallets.rb +11 -11
- data/test/test_id.rb +2 -2
- data/test/test_json_page.rb +2 -2
- data/test/test_key.rb +2 -2
- data/test/test_log.rb +5 -5
- data/test/test_metronome.rb +6 -6
- data/test/test_patch.rb +14 -14
- data/test/test_prefixes.rb +3 -3
- data/test/test_remotes.rb +9 -9
- data/test/test_signature.rb +2 -2
- data/test/test_size.rb +2 -2
- data/test/test_sync_wallets.rb +3 -3
- data/test/test_tax.rb +9 -9
- data/test/test_thread_pool.rb +8 -8
- data/test/test_tree_wallets.rb +2 -2
- data/test/test_txn.rb +2 -2
- data/test/test_upgrades.rb +2 -2
- data/test/test_verbose_thread.rb +2 -2
- data/test/test_version.rb +20 -0
- data/test/test_wallet.rb +22 -22
- data/test/test_wallets.rb +5 -5
- data/test/test_zold.rb +5 -5
- data/test/upgrades/test_delete_banned_wallets.rb +4 -4
- data/test/upgrades/test_protocol_up.rb +4 -4
- data/upgrades/2.rb +1 -1
- data/upgrades/delete_banned_wallets.rb +1 -1
- data/upgrades/move_wallets_into_tree.rb +1 -1
- data/upgrades/protocol_up.rb +1 -1
- data/upgrades/rename_foreign_wallets.rb +1 -1
- data/zold.gemspec +23 -23
- metadata +7 -3
data/test/test_metronome.rb
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
# frozen_string_literal: true
|
|
2
2
|
|
|
3
|
-
# Copyright (c) 2018-
|
|
3
|
+
# Copyright (c) 2018-2024 Zerocracy
|
|
4
4
|
#
|
|
5
5
|
# Permission is hereby granted, free of charge, to any person obtaining a copy
|
|
6
6
|
# of this software and associated documentation files (the 'Software'), to deal
|
|
@@ -26,11 +26,11 @@ require_relative '../lib/zold/metronome'
|
|
|
26
26
|
|
|
27
27
|
# Metronome test.
|
|
28
28
|
# Author:: Yegor Bugayenko (yegor256@gmail.com)
|
|
29
|
-
# Copyright:: Copyright (c) 2018
|
|
29
|
+
# Copyright:: Copyright (c) 2018-2024 Zerocracy
|
|
30
30
|
# License:: MIT
|
|
31
31
|
class TestMetronome < Zold::Test
|
|
32
32
|
def test_start_and_stop
|
|
33
|
-
metronome = Zold::Metronome.new(
|
|
33
|
+
metronome = Zold::Metronome.new(fake_log)
|
|
34
34
|
list = []
|
|
35
35
|
metronome.add(FakeRoutine.new(list))
|
|
36
36
|
metronome.start do
|
|
@@ -39,7 +39,7 @@ class TestMetronome < Zold::Test
|
|
|
39
39
|
end
|
|
40
40
|
|
|
41
41
|
def test_prints_to_text
|
|
42
|
-
metronome = Zold::Metronome.new(
|
|
42
|
+
metronome = Zold::Metronome.new(fake_log)
|
|
43
43
|
metronome.add(FakeRoutine.new([]))
|
|
44
44
|
metronome.start do |m|
|
|
45
45
|
assert(!m.to_text.nil?)
|
|
@@ -47,14 +47,14 @@ class TestMetronome < Zold::Test
|
|
|
47
47
|
end
|
|
48
48
|
|
|
49
49
|
def test_prints_empty_to_text
|
|
50
|
-
metronome = Zold::Metronome.new(
|
|
50
|
+
metronome = Zold::Metronome.new(fake_log)
|
|
51
51
|
metronome.start do |m|
|
|
52
52
|
assert(!m.to_text.nil?)
|
|
53
53
|
end
|
|
54
54
|
end
|
|
55
55
|
|
|
56
56
|
def test_continues_even_after_error
|
|
57
|
-
metronome = Zold::Metronome.new(
|
|
57
|
+
metronome = Zold::Metronome.new(fake_log)
|
|
58
58
|
routine = BrokenRoutine.new
|
|
59
59
|
metronome.add(routine)
|
|
60
60
|
metronome.start do
|
data/test/test_patch.rb
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
# frozen_string_literal: true
|
|
2
2
|
|
|
3
|
-
# Copyright (c) 2018-
|
|
3
|
+
# Copyright (c) 2018-2024 Zerocracy
|
|
4
4
|
#
|
|
5
5
|
# Permission is hereby granted, free of charge, to any person obtaining a copy
|
|
6
6
|
# of this software and associated documentation files (the 'Software'), to deal
|
|
@@ -32,11 +32,11 @@ require_relative '../lib/zold/patch'
|
|
|
32
32
|
|
|
33
33
|
# Patch test.
|
|
34
34
|
# Author:: Yegor Bugayenko (yegor256@gmail.com)
|
|
35
|
-
# Copyright:: Copyright (c) 2018
|
|
35
|
+
# Copyright:: Copyright (c) 2018-2024 Zerocracy
|
|
36
36
|
# License:: MIT
|
|
37
37
|
class TestPatch < Zold::Test
|
|
38
38
|
def test_builds_patch
|
|
39
|
-
FakeHome.new(log:
|
|
39
|
+
FakeHome.new(log: fake_log).run do |home|
|
|
40
40
|
first = home.create_wallet
|
|
41
41
|
second = home.create_wallet
|
|
42
42
|
third = home.create_wallet
|
|
@@ -49,7 +49,7 @@ class TestPatch < Zold::Test
|
|
|
49
49
|
File.write(third.path, File.read(first.path))
|
|
50
50
|
t = third.sub(Zold::Amount.new(zld: 10.0), "NOPREFIX@#{Zold::Id.new}", key)
|
|
51
51
|
third.add(t.inverse(Zold::Id.new))
|
|
52
|
-
patch = Zold::Patch.new(home.wallets, log:
|
|
52
|
+
patch = Zold::Patch.new(home.wallets, log: fake_log)
|
|
53
53
|
patch.join(first) { false }
|
|
54
54
|
patch.join(second) { false }
|
|
55
55
|
patch.join(third) { false }
|
|
@@ -59,12 +59,12 @@ class TestPatch < Zold::Test
|
|
|
59
59
|
end
|
|
60
60
|
|
|
61
61
|
def test_rejects_fake_positives
|
|
62
|
-
FakeHome.new(log:
|
|
62
|
+
FakeHome.new(log: fake_log).run do |home|
|
|
63
63
|
first = home.create_wallet
|
|
64
64
|
second = home.create_wallet
|
|
65
65
|
File.write(second.path, File.read(first.path))
|
|
66
66
|
second.add(Zold::Txn.new(1, Time.now, Zold::Amount.new(zld: 11.0), 'NOPREFIX', Zold::Id.new, 'fake'))
|
|
67
|
-
patch = Zold::Patch.new(home.wallets, log:
|
|
67
|
+
patch = Zold::Patch.new(home.wallets, log: fake_log)
|
|
68
68
|
patch.join(first) { false }
|
|
69
69
|
patch.join(second) { false }
|
|
70
70
|
assert_equal(false, patch.save(first.path, overwrite: true))
|
|
@@ -74,14 +74,14 @@ class TestPatch < Zold::Test
|
|
|
74
74
|
end
|
|
75
75
|
|
|
76
76
|
def test_accepts_negative_balance_in_root_wallet
|
|
77
|
-
FakeHome.new(log:
|
|
77
|
+
FakeHome.new(log: fake_log).run do |home|
|
|
78
78
|
first = home.create_wallet(Zold::Id::ROOT)
|
|
79
79
|
second = home.create_wallet
|
|
80
80
|
File.write(second.path, File.read(first.path))
|
|
81
81
|
amount = Zold::Amount.new(zld: 333.0)
|
|
82
82
|
key = Zold::Key.new(file: 'fixtures/id_rsa')
|
|
83
83
|
second.sub(amount, "NOPREFIX@#{Zold::Id.new}", key)
|
|
84
|
-
patch = Zold::Patch.new(home.wallets, log:
|
|
84
|
+
patch = Zold::Patch.new(home.wallets, log: fake_log)
|
|
85
85
|
patch.join(first) { false }
|
|
86
86
|
patch.join(second) { false }
|
|
87
87
|
assert_equal(true, patch.save(first.path, overwrite: true))
|
|
@@ -91,7 +91,7 @@ class TestPatch < Zold::Test
|
|
|
91
91
|
end
|
|
92
92
|
|
|
93
93
|
def test_merges_similar_ids_but_different_signs
|
|
94
|
-
FakeHome.new(log:
|
|
94
|
+
FakeHome.new(log: fake_log).run do |home|
|
|
95
95
|
first = home.create_wallet(Zold::Id::ROOT)
|
|
96
96
|
second = home.create_wallet
|
|
97
97
|
File.write(second.path, File.read(first.path))
|
|
@@ -103,7 +103,7 @@ class TestPatch < Zold::Test
|
|
|
103
103
|
Zold::Prefixes.new(first).create, Zold::Id.new, 'fake'
|
|
104
104
|
)
|
|
105
105
|
)
|
|
106
|
-
patch = Zold::Patch.new(home.wallets, log:
|
|
106
|
+
patch = Zold::Patch.new(home.wallets, log: fake_log)
|
|
107
107
|
patch.join(first) { false }
|
|
108
108
|
patch.join(second) { false }
|
|
109
109
|
assert_equal(true, patch.save(first.path, overwrite: true))
|
|
@@ -113,7 +113,7 @@ class TestPatch < Zold::Test
|
|
|
113
113
|
end
|
|
114
114
|
|
|
115
115
|
def test_merges_fragmented_parts
|
|
116
|
-
FakeHome.new(log:
|
|
116
|
+
FakeHome.new(log: fake_log).run do |home|
|
|
117
117
|
first = home.create_wallet(Zold::Id::ROOT)
|
|
118
118
|
second = home.create_wallet
|
|
119
119
|
File.write(second.path, File.read(first.path))
|
|
@@ -137,7 +137,7 @@ class TestPatch < Zold::Test
|
|
|
137
137
|
'NOPREFIX', Zold::Id.new, 'third payment'
|
|
138
138
|
).signed(key, first.id)
|
|
139
139
|
)
|
|
140
|
-
patch = Zold::Patch.new(home.wallets, log:
|
|
140
|
+
patch = Zold::Patch.new(home.wallets, log: fake_log)
|
|
141
141
|
patch.join(first) { false }
|
|
142
142
|
patch.join(second) { false }
|
|
143
143
|
assert_equal(true, patch.save(first.path, overwrite: true))
|
|
@@ -148,7 +148,7 @@ class TestPatch < Zold::Test
|
|
|
148
148
|
end
|
|
149
149
|
|
|
150
150
|
def test_protocols_new_txns
|
|
151
|
-
FakeHome.new(log:
|
|
151
|
+
FakeHome.new(log: fake_log).run do |home|
|
|
152
152
|
first = home.create_wallet(Zold::Id::ROOT)
|
|
153
153
|
second = home.create_wallet
|
|
154
154
|
File.write(second.path, File.read(first.path))
|
|
@@ -157,7 +157,7 @@ class TestPatch < Zold::Test
|
|
|
157
157
|
target = Zold::Id.new
|
|
158
158
|
second.sub(amount, "NOPREFIX@#{target}", key, 'some details')
|
|
159
159
|
second.sub(amount * 2, "NOPREFIX@#{target}", key)
|
|
160
|
-
patch = Zold::Patch.new(home.wallets, log:
|
|
160
|
+
patch = Zold::Patch.new(home.wallets, log: fake_log)
|
|
161
161
|
patch.legacy(first)
|
|
162
162
|
Tempfile.open do |f|
|
|
163
163
|
patch.join(second, ledger: f.path) { false }
|
data/test/test_prefixes.rb
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
# frozen_string_literal: true
|
|
2
2
|
|
|
3
|
-
# Copyright (c) 2018-
|
|
3
|
+
# Copyright (c) 2018-2024 Zerocracy
|
|
4
4
|
#
|
|
5
5
|
# Permission is hereby granted, free of charge, to any person obtaining a copy
|
|
6
6
|
# of this software and associated documentation files (the 'Software'), to deal
|
|
@@ -30,11 +30,11 @@ require_relative '../lib/zold/prefixes'
|
|
|
30
30
|
|
|
31
31
|
# Prefixes test.
|
|
32
32
|
# Author:: Yegor Bugayenko (yegor256@gmail.com)
|
|
33
|
-
# Copyright:: Copyright (c) 2018
|
|
33
|
+
# Copyright:: Copyright (c) 2018-2024 Zerocracy
|
|
34
34
|
# License:: MIT
|
|
35
35
|
class TestPrefixes < Zold::Test
|
|
36
36
|
def test_creates_and_validates
|
|
37
|
-
FakeHome.new(log:
|
|
37
|
+
FakeHome.new(log: fake_log).run do |home|
|
|
38
38
|
wallet = home.create_wallet
|
|
39
39
|
prefixes = Zold::Prefixes.new(wallet)
|
|
40
40
|
(8..32).each do |len|
|
data/test/test_remotes.rb
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
# frozen_string_literal: true
|
|
2
2
|
|
|
3
|
-
# Copyright (c) 2018-
|
|
3
|
+
# Copyright (c) 2018-2024 Zerocracy
|
|
4
4
|
#
|
|
5
5
|
# Permission is hereby granted, free of charge, to any person obtaining a copy
|
|
6
6
|
# of this software and associated documentation files (the 'Software'), to deal
|
|
@@ -32,7 +32,7 @@ require_relative '../lib/zold/verbose_thread'
|
|
|
32
32
|
|
|
33
33
|
# Remotes test.
|
|
34
34
|
# Author:: Yegor Bugayenko (yegor256@gmail.com)
|
|
35
|
-
# Copyright:: Copyright (c) 2018
|
|
35
|
+
# Copyright:: Copyright (c) 2018-2024 Zerocracy
|
|
36
36
|
# License:: MIT
|
|
37
37
|
class TestRemotes < Zold::Test
|
|
38
38
|
def test_adds_remotes
|
|
@@ -118,7 +118,7 @@ class TestRemotes < Zold::Test
|
|
|
118
118
|
remotes.clean
|
|
119
119
|
5.times { |i| remotes.add("0.0.0.#{i + 1}", 8080) }
|
|
120
120
|
total = 0
|
|
121
|
-
remotes.iterate(
|
|
121
|
+
remotes.iterate(fake_log) do
|
|
122
122
|
sleep 0.25
|
|
123
123
|
total += 1
|
|
124
124
|
end
|
|
@@ -126,7 +126,7 @@ class TestRemotes < Zold::Test
|
|
|
126
126
|
end
|
|
127
127
|
end
|
|
128
128
|
|
|
129
|
-
def
|
|
129
|
+
def fake_log_msg_of_iterates_when_fail
|
|
130
130
|
Dir.mktmpdir do |dir|
|
|
131
131
|
file = File.join(dir, 'remotes')
|
|
132
132
|
FileUtils.touch(file)
|
|
@@ -138,7 +138,7 @@ class TestRemotes < Zold::Test
|
|
|
138
138
|
end
|
|
139
139
|
end
|
|
140
140
|
|
|
141
|
-
def
|
|
141
|
+
def fake_log_msg_of_iterates_when_take_too_long
|
|
142
142
|
Dir.mktmpdir do |dir|
|
|
143
143
|
file = File.join(dir, 'remotes')
|
|
144
144
|
FileUtils.touch(file)
|
|
@@ -254,10 +254,10 @@ class TestRemotes < Zold::Test
|
|
|
254
254
|
remotes.add('127.0.0.1', 8080 + t)
|
|
255
255
|
remotes.error('127.0.0.1', 8080 + t)
|
|
256
256
|
remotes.all
|
|
257
|
-
remotes.iterate(
|
|
257
|
+
remotes.iterate(fake_log) { remotes.all }
|
|
258
258
|
remotes.remove('127.0.0.1', 8080 + t)
|
|
259
259
|
end
|
|
260
|
-
|
|
260
|
+
fake_log.info("Total time: #{Zold::Age.new(start)}")
|
|
261
261
|
end
|
|
262
262
|
end
|
|
263
263
|
|
|
@@ -298,7 +298,7 @@ class TestRemotes < Zold::Test
|
|
|
298
298
|
'X-Zold-Error': 'hey you'
|
|
299
299
|
}
|
|
300
300
|
)
|
|
301
|
-
remotes.iterate(
|
|
301
|
+
remotes.iterate(fake_log) do |r|
|
|
302
302
|
r.assert_code(200, r.http.get)
|
|
303
303
|
end
|
|
304
304
|
end
|
|
@@ -310,7 +310,7 @@ class TestRemotes < Zold::Test
|
|
|
310
310
|
remotes.clean
|
|
311
311
|
remotes.add('r5-example.org', 8080)
|
|
312
312
|
stub_request(:get, 'http://r5-example.org:8080/').to_return(status: 200)
|
|
313
|
-
remotes.iterate(
|
|
313
|
+
remotes.iterate(fake_log) do |r|
|
|
314
314
|
r.http.get
|
|
315
315
|
end
|
|
316
316
|
assert_requested(:get, 'http://r5-example.org:8080/', headers: { 'X-Zold-Network' => 'x13' })
|
data/test/test_signature.rb
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
# frozen_string_literal: true
|
|
2
2
|
|
|
3
|
-
# Copyright (c) 2018-
|
|
3
|
+
# Copyright (c) 2018-2024 Zerocracy
|
|
4
4
|
#
|
|
5
5
|
# Permission is hereby granted, free of charge, to any person obtaining a copy
|
|
6
6
|
# of this software and associated documentation files (the 'Software'), to deal
|
|
@@ -31,7 +31,7 @@ require_relative '../lib/zold/signature'
|
|
|
31
31
|
|
|
32
32
|
# Signature test.
|
|
33
33
|
# Author:: Yegor Bugayenko (yegor256@gmail.com)
|
|
34
|
-
# Copyright:: Copyright (c) 2018
|
|
34
|
+
# Copyright:: Copyright (c) 2018-2024 Zerocracy
|
|
35
35
|
# License:: MIT
|
|
36
36
|
class TestSignature < Zold::Test
|
|
37
37
|
def test_signs_and_validates
|
data/test/test_size.rb
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
# frozen_string_literal: true
|
|
2
2
|
|
|
3
|
-
# Copyright (c) 2018-
|
|
3
|
+
# Copyright (c) 2018-2024 Zerocracy
|
|
4
4
|
#
|
|
5
5
|
# Permission is hereby granted, free of charge, to any person obtaining a copy
|
|
6
6
|
# of this software and associated documentation files (the 'Software'), to deal
|
|
@@ -26,7 +26,7 @@ require_relative '../lib/zold/size'
|
|
|
26
26
|
|
|
27
27
|
# Size test.
|
|
28
28
|
# Author:: Yegor Bugayenko (yegor256@gmail.com)
|
|
29
|
-
# Copyright:: Copyright (c) 2018
|
|
29
|
+
# Copyright:: Copyright (c) 2018-2024 Zerocracy
|
|
30
30
|
# License:: MIT
|
|
31
31
|
class TestSize < Zold::Test
|
|
32
32
|
def test_prints_size
|
data/test/test_sync_wallets.rb
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
# frozen_string_literal: true
|
|
2
2
|
|
|
3
|
-
# Copyright (c) 2018-
|
|
3
|
+
# Copyright (c) 2018-2024 Zerocracy
|
|
4
4
|
#
|
|
5
5
|
# Permission is hereby granted, free of charge, to any person obtaining a copy
|
|
6
6
|
# of this software and associated documentation files (the 'Software'), to deal
|
|
@@ -33,11 +33,11 @@ require_relative '../lib/zold/amount'
|
|
|
33
33
|
|
|
34
34
|
# SyncWallets test.
|
|
35
35
|
# Author:: Yegor Bugayenko (yegor256@gmail.com)
|
|
36
|
-
# Copyright:: Copyright (c) 2018
|
|
36
|
+
# Copyright:: Copyright (c) 2018-2024 Zerocracy
|
|
37
37
|
# License:: MIT
|
|
38
38
|
class TestSyncWallets < Zold::Test
|
|
39
39
|
def test_adds_wallet
|
|
40
|
-
FakeHome.new(log:
|
|
40
|
+
FakeHome.new(log: fake_log).run do |home|
|
|
41
41
|
wallets = home.wallets
|
|
42
42
|
id = Zold::Id.new
|
|
43
43
|
home.create_wallet(id)
|
data/test/test_tax.rb
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
# frozen_string_literal: true
|
|
2
2
|
|
|
3
|
-
# Copyright (c) 2018-
|
|
3
|
+
# Copyright (c) 2018-2024 Zerocracy
|
|
4
4
|
#
|
|
5
5
|
# Permission is hereby granted, free of charge, to any person obtaining a copy
|
|
6
6
|
# of this software and associated documentation files (the 'Software'), to deal
|
|
@@ -35,15 +35,15 @@ require_relative '../lib/zold/prefixes'
|
|
|
35
35
|
|
|
36
36
|
# Tax test.
|
|
37
37
|
# Author:: Yegor Bugayenko (yegor256@gmail.com)
|
|
38
|
-
# Copyright:: Copyright (c) 2018
|
|
38
|
+
# Copyright:: Copyright (c) 2018-2024 Zerocracy
|
|
39
39
|
# License:: MIT
|
|
40
40
|
class TestTax < Zold::Test
|
|
41
41
|
def test_print_fee
|
|
42
|
-
|
|
42
|
+
fake_log.info("Fee in zents: #{Zold::Tax::FEE.to_i}")
|
|
43
43
|
end
|
|
44
44
|
|
|
45
45
|
def test_calculates_tax_for_one_year
|
|
46
|
-
FakeHome.new(log:
|
|
46
|
+
FakeHome.new(log: fake_log).run do |home|
|
|
47
47
|
wallet = home.create_wallet
|
|
48
48
|
a = 10_000
|
|
49
49
|
wallet.add(
|
|
@@ -60,7 +60,7 @@ class TestTax < Zold::Test
|
|
|
60
60
|
end
|
|
61
61
|
|
|
62
62
|
def test_calculates_debt
|
|
63
|
-
FakeHome.new(log:
|
|
63
|
+
FakeHome.new(log: fake_log).run do |home|
|
|
64
64
|
wallet = home.create_wallet
|
|
65
65
|
(1..30).each do |i|
|
|
66
66
|
wallet.add(
|
|
@@ -84,7 +84,7 @@ class TestTax < Zold::Test
|
|
|
84
84
|
end
|
|
85
85
|
|
|
86
86
|
def test_prints_tax_formula
|
|
87
|
-
FakeHome.new(log:
|
|
87
|
+
FakeHome.new(log: fake_log).run do |home|
|
|
88
88
|
wallet = home.create_wallet
|
|
89
89
|
tax = Zold::Tax.new(wallet)
|
|
90
90
|
assert(!tax.to_text.nil?)
|
|
@@ -92,7 +92,7 @@ class TestTax < Zold::Test
|
|
|
92
92
|
end
|
|
93
93
|
|
|
94
94
|
def test_takes_tax_payment_into_account
|
|
95
|
-
FakeHome.new(log:
|
|
95
|
+
FakeHome.new(log: fake_log).run do |home|
|
|
96
96
|
wallet = home.create_wallet
|
|
97
97
|
amount = Zold::Amount.new(zents: 95_596_800)
|
|
98
98
|
wallet.add(
|
|
@@ -112,7 +112,7 @@ class TestTax < Zold::Test
|
|
|
112
112
|
end
|
|
113
113
|
|
|
114
114
|
def test_filters_out_incoming_payments
|
|
115
|
-
FakeHome.new(log:
|
|
115
|
+
FakeHome.new(log: fake_log).run do |home|
|
|
116
116
|
wallet = home.create_wallet
|
|
117
117
|
amount = Zold::Amount.new(zents: 95_596_800)
|
|
118
118
|
prefix = Zold::Prefixes.new(wallet).create(8)
|
|
@@ -146,7 +146,7 @@ class TestTax < Zold::Test
|
|
|
146
146
|
end
|
|
147
147
|
|
|
148
148
|
def test_checks_existence_of_duplicates
|
|
149
|
-
FakeHome.new(log:
|
|
149
|
+
FakeHome.new(log: fake_log).run do |home|
|
|
150
150
|
wallet = home.create_wallet
|
|
151
151
|
wallet.add(
|
|
152
152
|
Zold::Txn.new(
|
data/test/test_thread_pool.rb
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
# frozen_string_literal: true
|
|
2
2
|
|
|
3
|
-
# Copyright (c) 2018-
|
|
3
|
+
# Copyright (c) 2018-2024 Zerocracy
|
|
4
4
|
#
|
|
5
5
|
# Permission is hereby granted, free of charge, to any person obtaining a copy
|
|
6
6
|
# of this software and associated documentation files (the 'Software'), to deal
|
|
@@ -27,11 +27,11 @@ require_relative '../lib/zold/thread_pool'
|
|
|
27
27
|
|
|
28
28
|
# ThreadPool test.
|
|
29
29
|
# Author:: Yegor Bugayenko (yegor256@gmail.com)
|
|
30
|
-
# Copyright:: Copyright (c) 2018
|
|
30
|
+
# Copyright:: Copyright (c) 2018-2024 Zerocracy
|
|
31
31
|
# License:: MIT
|
|
32
32
|
class TestThreadPool < Zold::Test
|
|
33
33
|
def test_closes_all_threads_right
|
|
34
|
-
pool = Zold::ThreadPool.new('test', log:
|
|
34
|
+
pool = Zold::ThreadPool.new('test', log: fake_log)
|
|
35
35
|
idx = Concurrent::AtomicFixnum.new
|
|
36
36
|
threads = 50
|
|
37
37
|
threads.times do
|
|
@@ -44,7 +44,7 @@ class TestThreadPool < Zold::Test
|
|
|
44
44
|
end
|
|
45
45
|
|
|
46
46
|
def test_adds_and_stops
|
|
47
|
-
pool = Zold::ThreadPool.new('test', log:
|
|
47
|
+
pool = Zold::ThreadPool.new('test', log: fake_log)
|
|
48
48
|
pool.add do
|
|
49
49
|
sleep 60 * 60
|
|
50
50
|
end
|
|
@@ -52,7 +52,7 @@ class TestThreadPool < Zold::Test
|
|
|
52
52
|
end
|
|
53
53
|
|
|
54
54
|
def test_stops_stuck_threads
|
|
55
|
-
pool = Zold::ThreadPool.new('test', log:
|
|
55
|
+
pool = Zold::ThreadPool.new('test', log: fake_log)
|
|
56
56
|
pool.add do
|
|
57
57
|
loop do
|
|
58
58
|
# forever
|
|
@@ -62,12 +62,12 @@ class TestThreadPool < Zold::Test
|
|
|
62
62
|
end
|
|
63
63
|
|
|
64
64
|
def test_stops_empty_pool
|
|
65
|
-
pool = Zold::ThreadPool.new('test', log:
|
|
65
|
+
pool = Zold::ThreadPool.new('test', log: fake_log)
|
|
66
66
|
pool.kill
|
|
67
67
|
end
|
|
68
68
|
|
|
69
69
|
def test_prints_to_json
|
|
70
|
-
pool = Zold::ThreadPool.new('test', log:
|
|
70
|
+
pool = Zold::ThreadPool.new('test', log: fake_log)
|
|
71
71
|
pool.add do
|
|
72
72
|
Thread.current.thread_variable_set(:foo, 1)
|
|
73
73
|
loop do
|
|
@@ -83,7 +83,7 @@ class TestThreadPool < Zold::Test
|
|
|
83
83
|
end
|
|
84
84
|
|
|
85
85
|
def test_prints_to_text
|
|
86
|
-
pool = Zold::ThreadPool.new('test', log:
|
|
86
|
+
pool = Zold::ThreadPool.new('test', log: fake_log)
|
|
87
87
|
assert(!pool.to_s.nil?)
|
|
88
88
|
end
|
|
89
89
|
end
|
data/test/test_tree_wallets.rb
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
# frozen_string_literal: true
|
|
2
2
|
|
|
3
|
-
# Copyright (c) 2018-
|
|
3
|
+
# Copyright (c) 2018-2024 Zerocracy
|
|
4
4
|
#
|
|
5
5
|
# Permission is hereby granted, free of charge, to any person obtaining a copy
|
|
6
6
|
# of this software and associated documentation files (the 'Software'), to deal
|
|
@@ -30,7 +30,7 @@ require_relative '../lib/zold/tree_wallets'
|
|
|
30
30
|
|
|
31
31
|
# TreeWallets test.
|
|
32
32
|
# Author:: Yegor Bugayenko (yegor256@gmail.com)
|
|
33
|
-
# Copyright:: Copyright (c) 2018
|
|
33
|
+
# Copyright:: Copyright (c) 2018-2024 Zerocracy
|
|
34
34
|
# License:: MIT
|
|
35
35
|
class TestTreeWallets < Zold::Test
|
|
36
36
|
def test_adds_wallet
|
data/test/test_txn.rb
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
# frozen_string_literal: true
|
|
2
2
|
|
|
3
|
-
# Copyright (c) 2018-
|
|
3
|
+
# Copyright (c) 2018-2024 Zerocracy
|
|
4
4
|
#
|
|
5
5
|
# Permission is hereby granted, free of charge, to any person obtaining a copy
|
|
6
6
|
# of this software and associated documentation files (the 'Software'), to deal
|
|
@@ -30,7 +30,7 @@ require_relative '../lib/zold/amount'
|
|
|
30
30
|
|
|
31
31
|
# Txn test.
|
|
32
32
|
# Author:: Yegor Bugayenko (yegor256@gmail.com)
|
|
33
|
-
# Copyright:: Copyright (c) 2018
|
|
33
|
+
# Copyright:: Copyright (c) 2018-2024 Zerocracy
|
|
34
34
|
# License:: MIT
|
|
35
35
|
class TestTxn < Zold::Test
|
|
36
36
|
def test_prints_and_parses
|
data/test/test_upgrades.rb
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
# frozen_string_literal: true
|
|
2
2
|
|
|
3
|
-
# Copyright (c) 2018-
|
|
3
|
+
# Copyright (c) 2018-2024 Zerocracy
|
|
4
4
|
#
|
|
5
5
|
# Permission is hereby granted, free of charge, to any person obtaining a copy
|
|
6
6
|
# of this software and associated documentation files (the 'Software'), to deal
|
|
@@ -27,7 +27,7 @@ require_relative '../lib/zold/version_file'
|
|
|
27
27
|
|
|
28
28
|
# Upgrade test.
|
|
29
29
|
# Author:: Yegor Bugayenko (yegor256@gmail.com)
|
|
30
|
-
# Copyright:: Copyright (c) 2018
|
|
30
|
+
# Copyright:: Copyright (c) 2018-2024 Zerocracy
|
|
31
31
|
# License:: MIT
|
|
32
32
|
class TestUpgrades < Zold::Test
|
|
33
33
|
# @todo #327:30min Uncomment, when you're ready to work on upgrade manager's
|
data/test/test_verbose_thread.rb
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
# frozen_string_literal: true
|
|
2
2
|
|
|
3
|
-
# Copyright (c) 2018-
|
|
3
|
+
# Copyright (c) 2018-2024 Zerocracy
|
|
4
4
|
#
|
|
5
5
|
# Permission is hereby granted, free of charge, to any person obtaining a copy
|
|
6
6
|
# of this software and associated documentation files (the 'Software'), to deal
|
|
@@ -26,7 +26,7 @@ require_relative '../lib/zold/verbose_thread'
|
|
|
26
26
|
|
|
27
27
|
# VerboseThread test.
|
|
28
28
|
# Author:: Yegor Bugayenko (yegor256@gmail.com)
|
|
29
|
-
# Copyright:: Copyright (c) 2018
|
|
29
|
+
# Copyright:: Copyright (c) 2018-2024 Zerocracy
|
|
30
30
|
# License:: MIT
|
|
31
31
|
class TestVerboseThread < Zold::Test
|
|
32
32
|
def test_exceptions_are_logged
|
data/test/test_version.rb
CHANGED
|
@@ -1,5 +1,25 @@
|
|
|
1
1
|
# frozen_string_literal: true
|
|
2
2
|
|
|
3
|
+
# Copyright (c) 2018-2024 Zerocracy
|
|
4
|
+
#
|
|
5
|
+
# Permission is hereby granted, free of charge, to any person obtaining a copy
|
|
6
|
+
# of this software and associated documentation files (the 'Software'), to deal
|
|
7
|
+
# in the Software without restriction, including without limitation the rights
|
|
8
|
+
# to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
|
|
9
|
+
# copies of the Software, and to permit persons to whom the Software is
|
|
10
|
+
# furnished to do so, subject to the following conditions:
|
|
11
|
+
#
|
|
12
|
+
# The above copyright notice and this permission notice shall be included in all
|
|
13
|
+
# copies or substantial portions of the Software.
|
|
14
|
+
#
|
|
15
|
+
# THE SOFTWARE IS PROVIDED 'AS IS', WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
|
|
16
|
+
# IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
|
|
17
|
+
# FITNESS FOR A PARTICULAR PURPOSE AND NONINFINGEMENT. IN NO EVENT SHALL THE
|
|
18
|
+
# AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
|
|
19
|
+
# LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
|
|
20
|
+
# OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
|
|
21
|
+
# SOFTWARE.
|
|
22
|
+
|
|
3
23
|
require 'semantic'
|
|
4
24
|
require 'zold/version'
|
|
5
25
|
require 'minitest/autorun'
|