zold 0.31.7 → 0.31.9
Sign up to get free protection for your applications and to get access to all the features.
- 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 +22 -1
- 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 +3 -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 +4 -3
- 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 +11 -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/lib/zold/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
|
@@ -28,7 +28,7 @@ require_relative 'amount'
|
|
28
28
|
# Tax transaction.
|
29
29
|
#
|
30
30
|
# Author:: Yegor Bugayenko (yegor256@gmail.com)
|
31
|
-
# Copyright:: Copyright (c) 2018
|
31
|
+
# Copyright:: Copyright (c) 2018-2024 Zerocracy
|
32
32
|
# License:: MIT
|
33
33
|
module Zold
|
34
34
|
# A single tax payment
|
data/lib/zold/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
|
@@ -26,7 +26,7 @@ require_relative 'verbose_thread'
|
|
26
26
|
|
27
27
|
# Thread pool.
|
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
|
module Zold
|
32
32
|
# Thread pool
|
data/lib/zold/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
|
@@ -26,7 +26,7 @@ require_relative 'dir_items'
|
|
26
26
|
|
27
27
|
# The local collection of wallets.
|
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
|
module Zold
|
32
32
|
# Collection of local wallets, in a tree of directories
|
data/lib/zold/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
|
@@ -29,7 +29,7 @@ require_relative 'signature'
|
|
29
29
|
# The transaction.
|
30
30
|
#
|
31
31
|
# Author:: Yegor Bugayenko (yegor256@gmail.com)
|
32
|
-
# Copyright:: Copyright (c) 2018
|
32
|
+
# Copyright:: Copyright (c) 2018-2024 Zerocracy
|
33
33
|
# License:: MIT
|
34
34
|
module Zold
|
35
35
|
# A single transaction
|
data/lib/zold/txns.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
|
@@ -24,7 +24,7 @@ require_relative 'txn'
|
|
24
24
|
|
25
25
|
# Transactions in a wallet.
|
26
26
|
# Author:: Yegor Bugayenko (yegor256@gmail.com)
|
27
|
-
# Copyright:: Copyright (c) 2018
|
27
|
+
# Copyright:: Copyright (c) 2018-2024 Zerocracy
|
28
28
|
# License:: MIT
|
29
29
|
module Zold
|
30
30
|
# A collection of transactions
|
@@ -60,7 +60,7 @@ module Zold
|
|
60
60
|
|
61
61
|
# Cached transactions.
|
62
62
|
# Author:: Yegor Bugayenko (yegor256@gmail.com)
|
63
|
-
# Copyright:: Copyright (c) 2018
|
63
|
+
# Copyright:: Copyright (c) 2018-2024 Zerocracy
|
64
64
|
# License:: MIT
|
65
65
|
class CachedTxns
|
66
66
|
def initialize(txns)
|
data/lib/zold/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
|
data/lib/zold/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
|
@@ -27,7 +27,7 @@ require_relative 'size'
|
|
27
27
|
|
28
28
|
# Verbose thread.
|
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
|
module Zold
|
33
33
|
# Verbose thread
|
data/lib/zold/version.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
|
@@ -22,10 +22,10 @@
|
|
22
22
|
|
23
23
|
# Zold main module.
|
24
24
|
# Author:: Yegor Bugayenko (yegor256@gmail.com)
|
25
|
-
# Copyright:: Copyright (c) 2018
|
25
|
+
# Copyright:: Copyright (c) 2018-2024 Zerocracy
|
26
26
|
# License:: MIT
|
27
27
|
module Zold
|
28
|
-
VERSION = '0.31.
|
28
|
+
VERSION = '0.31.9'
|
29
29
|
PROTOCOL = 2
|
30
30
|
REPO = 'zold-io/zold'
|
31
31
|
end
|
data/lib/zold/version_file.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
|
data/lib/zold/wallet.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
|
@@ -42,7 +42,7 @@ require_relative 'head'
|
|
42
42
|
# More details about its format is in README.md.
|
43
43
|
#
|
44
44
|
# Author:: Yegor Bugayenko (yegor256@gmail.com)
|
45
|
-
# Copyright:: Copyright (c) 2018
|
45
|
+
# Copyright:: Copyright (c) 2018-2024 Zerocracy
|
46
46
|
# License:: MIT
|
47
47
|
module Zold
|
48
48
|
# A single wallet
|
data/lib/zold/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
|
@@ -29,7 +29,7 @@ require_relative 'dir_items'
|
|
29
29
|
# This class is not thread-safe!
|
30
30
|
#
|
31
31
|
# Author:: Yegor Bugayenko (yegor256@gmail.com)
|
32
|
-
# Copyright:: Copyright (c) 2018
|
32
|
+
# Copyright:: Copyright (c) 2018-2024 Zerocracy
|
33
33
|
# License:: MIT
|
34
34
|
module Zold
|
35
35
|
# Collection of local wallets
|
data/lib/zold.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
|
@@ -39,7 +39,7 @@ require_relative 'zold/version'
|
|
39
39
|
|
40
40
|
# Zold main module.
|
41
41
|
# Author:: Yegor Bugayenko (yegor256@gmail.com)
|
42
|
-
# Copyright:: Copyright (c) 2018
|
42
|
+
# Copyright:: Copyright (c) 2018-2024 Zerocracy
|
43
43
|
# License:: MIT
|
44
44
|
module Zold
|
45
45
|
# to be implemented...
|
@@ -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
|
@@ -28,13 +28,13 @@ require_relative '../../../lib/zold/commands/routines/audit'
|
|
28
28
|
|
29
29
|
# Audit test.
|
30
30
|
# Author:: Yegor Bugayenko (yegor256@gmail.com)
|
31
|
-
# Copyright:: Copyright (c) 2018
|
31
|
+
# Copyright:: Copyright (c) 2018-2024 Zerocracy
|
32
32
|
# License:: MIT
|
33
33
|
class TestAudit < Zold::Test
|
34
34
|
def test_audits
|
35
|
-
FakeHome.new(log:
|
35
|
+
FakeHome.new(log: fake_log).run do |home|
|
36
36
|
opts = { 'routine-immediately' => true }
|
37
|
-
routine = Zold::Routines::Audit.new(opts, home.wallets, log:
|
37
|
+
routine = Zold::Routines::Audit.new(opts, home.wallets, log: fake_log)
|
38
38
|
routine.exec
|
39
39
|
end
|
40
40
|
end
|
@@ -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
|
@@ -28,41 +28,41 @@ require_relative '../../../lib/zold/commands/routines/gc'
|
|
28
28
|
|
29
29
|
# Gc test.
|
30
30
|
# Author:: Yegor Bugayenko (yegor256@gmail.com)
|
31
|
-
# Copyright:: Copyright (c) 2018
|
31
|
+
# Copyright:: Copyright (c) 2018-2024 Zerocracy
|
32
32
|
# License:: MIT
|
33
33
|
class TestGc < Zold::Test
|
34
34
|
def test_collects_garbage
|
35
|
-
FakeHome.new(log:
|
35
|
+
FakeHome.new(log: fake_log).run do |home|
|
36
36
|
wallets = home.wallets
|
37
37
|
home.create_wallet
|
38
38
|
opts = { 'routine-immediately' => true, 'gc-age' => 0 }
|
39
39
|
assert_equal(1, wallets.count)
|
40
|
-
routine = Zold::Routines::Gc.new(opts, wallets, log:
|
40
|
+
routine = Zold::Routines::Gc.new(opts, wallets, log: fake_log)
|
41
41
|
routine.exec
|
42
42
|
assert_equal(0, wallets.count)
|
43
43
|
end
|
44
44
|
end
|
45
45
|
|
46
46
|
def test_doesnt_touch_non_empty_wallets
|
47
|
-
FakeHome.new(log:
|
47
|
+
FakeHome.new(log: fake_log).run do |home|
|
48
48
|
wallets = home.wallets
|
49
49
|
wallet = home.create_wallet
|
50
50
|
amount = Zold::Amount.new(zld: 39.99)
|
51
51
|
key = Zold::Key.new(file: 'fixtures/id_rsa')
|
52
52
|
wallet.sub(amount, "NOPREFIX@#{Zold::Id.new}", key)
|
53
53
|
opts = { 'routine-immediately' => true, 'gc-age' => 0 }
|
54
|
-
routine = Zold::Routines::Gc.new(opts, wallets, log:
|
54
|
+
routine = Zold::Routines::Gc.new(opts, wallets, log: fake_log)
|
55
55
|
routine.exec
|
56
56
|
assert_equal(1, wallets.count)
|
57
57
|
end
|
58
58
|
end
|
59
59
|
|
60
60
|
def test_doesnt_touch_fresh_wallets
|
61
|
-
FakeHome.new(log:
|
61
|
+
FakeHome.new(log: fake_log).run do |home|
|
62
62
|
wallets = home.wallets
|
63
63
|
home.create_wallet
|
64
64
|
opts = { 'routine-immediately' => true, 'gc-age' => 60 * 60 }
|
65
|
-
routine = Zold::Routines::Gc.new(opts, wallets, log:
|
65
|
+
routine = Zold::Routines::Gc.new(opts, wallets, log: fake_log)
|
66
66
|
routine.exec
|
67
67
|
assert_equal(1, wallets.count)
|
68
68
|
end
|
@@ -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
|
@@ -29,11 +29,11 @@ require_relative '../../../lib/zold/commands/routines/reconcile'
|
|
29
29
|
|
30
30
|
# Reconcile test.
|
31
31
|
# Author:: Yegor Bugayenko (yegor256@gmail.com)
|
32
|
-
# Copyright:: Copyright (c) 2018
|
32
|
+
# Copyright:: Copyright (c) 2018-2024 Zerocracy
|
33
33
|
# License:: MIT
|
34
34
|
class TestReconcile < Zold::Test
|
35
35
|
def test_reconciles
|
36
|
-
FakeHome.new(log:
|
36
|
+
FakeHome.new(log: fake_log).run do |home|
|
37
37
|
remotes = home.remotes
|
38
38
|
remotes.clean
|
39
39
|
remotes.masters
|
@@ -43,7 +43,7 @@ class TestReconcile < Zold::Test
|
|
43
43
|
stub_request(:get, "http://#{m[:host]}:#{m[:port]}/wallet/#{Zold::Id::ROOT}").to_return(status: 404)
|
44
44
|
opts = { 'never-reboot' => true, 'routine-immediately' => true }
|
45
45
|
routine = Zold::Routines::Reconcile.new(
|
46
|
-
opts, home.wallets, remotes, home.copies.root, 'some-fake-host:2096', log:
|
46
|
+
opts, home.wallets, remotes, home.copies.root, 'some-fake-host:2096', log: fake_log
|
47
47
|
)
|
48
48
|
routine.exec
|
49
49
|
end
|
@@ -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
|
@@ -29,7 +29,7 @@ require_relative '../../../lib/zold/commands/routines/reconnect'
|
|
29
29
|
|
30
30
|
# Reconnect test.
|
31
31
|
# Author:: Yegor Bugayenko (yegor256@gmail.com)
|
32
|
-
# Copyright:: Copyright (c) 2018
|
32
|
+
# Copyright:: Copyright (c) 2018-2024 Zerocracy
|
33
33
|
# License:: MIT
|
34
34
|
class TestReconnect < Zold::Test
|
35
35
|
def test_reconnects
|
@@ -39,7 +39,7 @@ class TestReconnect < Zold::Test
|
|
39
39
|
remotes.add('localhost', 4096)
|
40
40
|
stub_request(:get, 'http://localhost:4096/remotes').to_return(status: 404)
|
41
41
|
opts = { 'never-reboot' => true, 'routine-immediately' => true }
|
42
|
-
routine = Zold::Routines::Reconnect.new(opts, remotes, log:
|
42
|
+
routine = Zold::Routines::Reconnect.new(opts, remotes, log: fake_log)
|
43
43
|
routine.exec
|
44
44
|
end
|
45
45
|
end
|
@@ -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
|
@@ -29,12 +29,12 @@ require_relative '../../../lib/zold/commands/routines/retire'
|
|
29
29
|
|
30
30
|
# Retire test.
|
31
31
|
# Author:: Yegor Bugayenko (yegor256@gmail.com)
|
32
|
-
# Copyright:: Copyright (c) 2018
|
32
|
+
# Copyright:: Copyright (c) 2018-2024 Zerocracy
|
33
33
|
# License:: MIT
|
34
34
|
class TestRetire < Zold::Test
|
35
35
|
def test_retires
|
36
36
|
opts = { 'never-reboot' => false, 'routine-immediately' => true }
|
37
|
-
routine = Zold::Routines::Retire.new(opts, log:
|
37
|
+
routine = Zold::Routines::Retire.new(opts, log: fake_log)
|
38
38
|
routine.exec(10 * 24 * 60)
|
39
39
|
end
|
40
40
|
end
|
data/test/commands/test_alias.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 'minitest/autorun'
|
4
24
|
require_relative '../test__helper'
|
5
25
|
require_relative '../fake_home'
|
@@ -11,9 +31,9 @@ class TestAlias < Zold::Test
|
|
11
31
|
# The syntax is already documented in the alias command in the help.
|
12
32
|
def test_set_writes_alias_to_the_alias_file
|
13
33
|
skip
|
14
|
-
FakeHome.new(log:
|
34
|
+
FakeHome.new(log: fake_log).run do |home|
|
15
35
|
wallet = home.create_wallet
|
16
|
-
Zold::Alias.new(wallets: home.wallets, log:
|
36
|
+
Zold::Alias.new(wallets: home.wallets, log: fake_log).run(%W[set #{wallet.id} my-alias])
|
17
37
|
assert_equal read_alias_file(home), %W[my-alias #{wallet.id}]
|
18
38
|
end
|
19
39
|
end
|
@@ -23,9 +43,9 @@ class TestAlias < Zold::Test
|
|
23
43
|
# The syntax is already documented in the alias command in the help.
|
24
44
|
def test_remove_removes_the_alias_from_the_alias_file
|
25
45
|
skip
|
26
|
-
FakeHome.new(log:
|
46
|
+
FakeHome.new(log: fake_log).run do |home|
|
27
47
|
wallet = home.create_wallet
|
28
|
-
cmd = Zold::Alias.new(wallets: home.wallets, log:
|
48
|
+
cmd = Zold::Alias.new(wallets: home.wallets, log: fake_log)
|
29
49
|
cmd.run(%W[set #{wallet.id} my-alias])
|
30
50
|
assert_equal read_alias_file(home), %W[my-alias #{wallet.id}]
|
31
51
|
cmd.run(%w[remove my-alias])
|
@@ -38,9 +58,9 @@ class TestAlias < Zold::Test
|
|
38
58
|
# The syntax is already documented in the alias command in the help.
|
39
59
|
def test_show_prints_out_the_aliased_wallet_id
|
40
60
|
skip
|
41
|
-
FakeHome.new(log:
|
61
|
+
FakeHome.new(log: fake_log).run do |home|
|
42
62
|
wallet = home.create_wallet
|
43
|
-
cmd = Zold::Alias.new(wallets: home.wallets, log:
|
63
|
+
cmd = Zold::Alias.new(wallets: home.wallets, log: fake_log)
|
44
64
|
cmd.run(%W[set #{wallet.id} my-alias])
|
45
65
|
assert_equal read_alias_file(home), %W[my-alias #{wallet.id}]
|
46
66
|
stdout, = capture_io { cmd.run(%w[show my-alias]) }
|
@@ -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/commands/calculate'
|
|
27
27
|
|
28
28
|
# SCORE 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 TestCalculate < Zold::Test
|
33
33
|
def test_calculates_score
|
34
|
-
score = Zold::Calculate.new(log:
|
34
|
+
score = Zold::Calculate.new(log: fake_log).run(
|
35
35
|
['score', '--strength=2', '--max=8', '--invoice=NOSUFFIX@ffffffffffffffff']
|
36
36
|
)
|
37
37
|
assert(score.valid?)
|
data/test/commands/test_clean.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,42 +30,42 @@ require_relative '../../lib/zold/commands/clean'
|
|
30
30
|
|
31
31
|
# CLEAN 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 TestClean < Zold::Test
|
36
36
|
def test_cleans_copies
|
37
|
-
FakeHome.new(log:
|
37
|
+
FakeHome.new(log: fake_log).run do |home|
|
38
38
|
wallet = home.create_wallet
|
39
39
|
copies = home.copies(wallet)
|
40
40
|
copies.add('a1', 'host-1', 80, 1, time: Time.now - (26 * 60 * 60))
|
41
41
|
copies.add('a2', 'host-2', 80, 2, time: Time.now - (26 * 60 * 60))
|
42
|
-
Zold::Clean.new(wallets: home.wallets, copies: copies.root, log:
|
42
|
+
Zold::Clean.new(wallets: home.wallets, copies: copies.root, log: fake_log).run(['clean', wallet.id.to_s])
|
43
43
|
assert(copies.all.empty?)
|
44
44
|
end
|
45
45
|
end
|
46
46
|
|
47
47
|
def test_clean_no_copies
|
48
|
-
FakeHome.new(log:
|
48
|
+
FakeHome.new(log: fake_log).run do |home|
|
49
49
|
wallet = home.create_wallet
|
50
50
|
copies = home.copies(wallet)
|
51
|
-
Zold::Clean.new(wallets: home.wallets, copies: copies.root, log:
|
51
|
+
Zold::Clean.new(wallets: home.wallets, copies: copies.root, log: fake_log).run(['clean'])
|
52
52
|
assert(copies.all.empty?)
|
53
53
|
end
|
54
54
|
end
|
55
55
|
|
56
56
|
def test_cleans_empty_wallets
|
57
|
-
FakeHome.new(log:
|
58
|
-
Zold::Clean.new(wallets: home.wallets, copies: File.join(home.dir, 'c'), log:
|
57
|
+
FakeHome.new(log: fake_log).run do |home|
|
58
|
+
Zold::Clean.new(wallets: home.wallets, copies: File.join(home.dir, 'c'), log: fake_log).run(['clean'])
|
59
59
|
end
|
60
60
|
end
|
61
61
|
|
62
62
|
def test_cleans_copies_in_threads
|
63
|
-
FakeHome.new(log:
|
63
|
+
FakeHome.new(log: fake_log).run do |home|
|
64
64
|
wallet = home.create_wallet
|
65
65
|
copies = home.copies(wallet)
|
66
66
|
copies.add(File.read(wallet.path), 'host-2', 80, 2, time: Time.now)
|
67
67
|
Threads.new(20).assert do
|
68
|
-
Zold::Clean.new(wallets: home.wallets, copies: copies.root, log:
|
68
|
+
Zold::Clean.new(wallets: home.wallets, copies: copies.root, log: fake_log).run(['clean'])
|
69
69
|
end
|
70
70
|
assert_equal(1, copies.all.count)
|
71
71
|
end
|
@@ -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
|
@@ -29,13 +29,13 @@ require_relative '../../lib/zold/commands/create'
|
|
29
29
|
|
30
30
|
# CREATE test.
|
31
31
|
# Author:: Yegor Bugayenko (yegor256@gmail.com)
|
32
|
-
# Copyright:: Copyright (c) 2018
|
32
|
+
# Copyright:: Copyright (c) 2018-2024 Zerocracy
|
33
33
|
# License:: MIT
|
34
34
|
class TestCreate < Zold::Test
|
35
35
|
def test_creates_wallet
|
36
36
|
Dir.mktmpdir do |dir|
|
37
37
|
wallets = Zold::Wallets.new(dir)
|
38
|
-
id = Zold::Create.new(wallets: wallets, remotes: nil, log:
|
38
|
+
id = Zold::Create.new(wallets: wallets, remotes: nil, log: fake_log).run(
|
39
39
|
['create', '--public-key=fixtures/id_rsa.pub', '--skip-test']
|
40
40
|
)
|
41
41
|
wallets.acq(id) do |wallet|
|
data/test/commands/test_diff.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
|
@@ -36,23 +36,23 @@ require_relative '../../lib/zold/commands/diff'
|
|
36
36
|
|
37
37
|
# DIFF test.
|
38
38
|
# Author:: Yegor Bugayenko (yegor256@gmail.com)
|
39
|
-
# Copyright:: Copyright (c) 2018
|
39
|
+
# Copyright:: Copyright (c) 2018-2024 Zerocracy
|
40
40
|
# License:: MIT
|
41
41
|
class TestDiff < Zold::Test
|
42
42
|
def test_diff_with_copies
|
43
|
-
FakeHome.new(log:
|
43
|
+
FakeHome.new(log: fake_log).run do |home|
|
44
44
|
wallet = home.create_wallet
|
45
45
|
first = home.create_wallet
|
46
46
|
File.write(first.path, File.read(wallet.path))
|
47
47
|
second = home.create_wallet
|
48
48
|
File.write(second.path, File.read(wallet.path))
|
49
|
-
Zold::Pay.new(wallets: home.wallets, copies: home.dir, remotes: home.remotes, log:
|
49
|
+
Zold::Pay.new(wallets: home.wallets, copies: home.dir, remotes: home.remotes, log: fake_log).run(
|
50
50
|
['pay', wallet.id.to_s, "NOPREFIX@#{Zold::Id.new}", '14.95', '--force', '--private-key=fixtures/id_rsa']
|
51
51
|
)
|
52
52
|
copies = home.copies(wallet)
|
53
53
|
copies.add(File.read(first.path), 'host-1', 80, 5)
|
54
54
|
copies.add(File.read(second.path), 'host-2', 80, 5)
|
55
|
-
diff = Zold::Diff.new(wallets: home.wallets, copies: copies.root, log:
|
55
|
+
diff = Zold::Diff.new(wallets: home.wallets, copies: copies.root, log: fake_log).run(
|
56
56
|
['diff', wallet.id.to_s]
|
57
57
|
)
|
58
58
|
assert(diff.include?('-0001;'), diff)
|
data/test/commands/test_fetch.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
|
@@ -38,11 +38,11 @@ require_relative '../../lib/zold/commands/fetch'
|
|
38
38
|
|
39
39
|
# FETCH test.
|
40
40
|
# Author:: Yegor Bugayenko (yegor256@gmail.com)
|
41
|
-
# Copyright:: Copyright (c) 2018
|
41
|
+
# Copyright:: Copyright (c) 2018-2024 Zerocracy
|
42
42
|
# License:: MIT
|
43
43
|
class TestFetch < Zold::Test
|
44
44
|
def test_fetches_wallet
|
45
|
-
FakeHome.new(log:
|
45
|
+
FakeHome.new(log: fake_log).run do |home|
|
46
46
|
wallet = home.create_wallet
|
47
47
|
stub_request(:get, "http://localhost:4096/wallet/#{wallet.id}").to_return(
|
48
48
|
status: 200,
|
@@ -59,7 +59,7 @@ class TestFetch < Zold::Test
|
|
59
59
|
remotes.add('localhost', 4096)
|
60
60
|
remotes.add('localhost', 81)
|
61
61
|
copies = home.copies(wallet)
|
62
|
-
Zold::Fetch.new(wallets: home.wallets, copies: copies.root, remotes: remotes, log:
|
62
|
+
Zold::Fetch.new(wallets: home.wallets, copies: copies.root, remotes: remotes, log: fake_log).run(
|
63
63
|
['fetch', '--tolerate-edges', '--tolerate-quorum=1', '--ignore-score-weakness', wallet.id.to_s]
|
64
64
|
)
|
65
65
|
assert_equal(1, copies.all.count)
|
@@ -69,7 +69,7 @@ class TestFetch < Zold::Test
|
|
69
69
|
end
|
70
70
|
|
71
71
|
def test_fetches_multiple_wallets
|
72
|
-
log = TestLogger.new(
|
72
|
+
log = TestLogger.new(fake_log)
|
73
73
|
FakeHome.new(log: log).run do |home|
|
74
74
|
wallet_a = home.create_wallet
|
75
75
|
stub_request(:get, "http://localhost:4096/wallet/#{wallet_a.id}").to_return(
|
@@ -113,7 +113,7 @@ class TestFetch < Zold::Test
|
|
113
113
|
end
|
114
114
|
|
115
115
|
def test_fails_when_only_edge_nodes
|
116
|
-
FakeHome.new(log:
|
116
|
+
FakeHome.new(log: fake_log).run do |home|
|
117
117
|
wallet = home.create_wallet
|
118
118
|
stub_request(:get, "http://localhost:4096/wallet/#{wallet.id}").to_return(
|
119
119
|
status: 200,
|
@@ -129,7 +129,7 @@ class TestFetch < Zold::Test
|
|
129
129
|
remotes.add('localhost', 4096)
|
130
130
|
copies = home.copies(wallet)
|
131
131
|
assert_raises Zold::Fetch::EdgesOnly do
|
132
|
-
Zold::Fetch.new(wallets: home.wallets, copies: copies.root, remotes: remotes, log:
|
132
|
+
Zold::Fetch.new(wallets: home.wallets, copies: copies.root, remotes: remotes, log: fake_log).run(
|
133
133
|
['fetch', '--ignore-score-weakness', wallet.id.to_s]
|
134
134
|
)
|
135
135
|
end
|
@@ -137,7 +137,7 @@ class TestFetch < Zold::Test
|
|
137
137
|
end
|
138
138
|
|
139
139
|
def test_fails_when_only_one_node
|
140
|
-
FakeHome.new(log:
|
140
|
+
FakeHome.new(log: fake_log).run do |home|
|
141
141
|
wallet = home.create_wallet
|
142
142
|
stub_request(:get, "http://localhost:4096/wallet/#{wallet.id}").to_return(
|
143
143
|
status: 200,
|
@@ -153,7 +153,7 @@ class TestFetch < Zold::Test
|
|
153
153
|
remotes.add('localhost', 4096)
|
154
154
|
copies = home.copies(wallet)
|
155
155
|
assert_raises Zold::Fetch::NoQuorum do
|
156
|
-
Zold::Fetch.new(wallets: home.wallets, copies: copies.root, remotes: remotes, log:
|
156
|
+
Zold::Fetch.new(wallets: home.wallets, copies: copies.root, remotes: remotes, log: fake_log).run(
|
157
157
|
['fetch', '--tolerate-edges', '--ignore-score-weakness', wallet.id.to_s]
|
158
158
|
)
|
159
159
|
end
|