Skip to content

Commit 9361b5b

Browse files
committed
Test enumeratesigners
`enumeratesigners` is implemented but not tested. Add a test and update the types table.
1 parent ce7a5c0 commit 9361b5b

File tree

10 files changed

+43
-8
lines changed

10 files changed

+43
-8
lines changed

integration_test/tests/signer.rs

Lines changed: 35 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,35 @@
1+
// SPDX-License-Identifier: CC0-1.0
2+
3+
//! Tests for methods found under the `== Signer ==` section of the API docs.
4+
5+
#![allow(non_snake_case)] // Test names intentionally use double underscore.
6+
#![allow(unused_imports)] // Because of feature gated tests.
7+
8+
use integration_test::{Node, NodeExt as _, Wallet};
9+
use node::{mtype, Input, Output};
10+
use node::vtype::*; // All the version specific types.
11+
12+
#[test]
13+
#[cfg(unix)]
14+
#[cfg(not(feature = "v21_and_below"))]
15+
fn signer__enumerate_signers() {
16+
use std::os::unix::fs::PermissionsExt;
17+
18+
let script_path = integration_test::random_tmp_file();
19+
// `script_body` is minimal JSON array expected by `enumeratesigners` RPC: an array
20+
// of signer objects with at least a fingerprint and name. Using a hard-coded
21+
// dummy signer (fingerprint "deadbeef").
22+
let script_body = "#!/bin/sh\necho '[{\"fingerprint\":\"deadbeef\",\"name\":\"TestSigner\"}]'\n";
23+
std::fs::write(&script_path, script_body).expect("write signer script");
24+
25+
// Script needs to be executable so bitcoind can invoke it via the -signer arg.
26+
std::fs::set_permissions(&script_path, std::fs::Permissions::from_mode(0o755))
27+
.expect("chmod");
28+
29+
let signer_arg = format!("-signer={}", script_path.to_str().unwrap());
30+
let node = Node::with_wallet(Wallet::None, &[&signer_arg]);
31+
let json: EnumerateSigners = node.client.enumerate_signers().expect("enumeratesigners");
32+
let first_tx = json.signers.first().expect("no signers found");
33+
34+
assert_eq!(first_tx.fingerprint, "deadbeef");
35+
}

types/src/v22/mod.rs

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -144,7 +144,7 @@
144144
//!
145145
//! | JSON-RPC Method Name | Returns | Notes |
146146
//! |:-----------------------------------|:---------------:|:--------------------------------------:|
147-
//! | enumeratesigners | version | UNTESTED |
147+
//! | enumeratesigners | version | |
148148
//!
149149
//! </details>
150150
//!

types/src/v23/mod.rs

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -135,7 +135,7 @@
135135
//!
136136
//! | JSON-RPC Method Name | Returns | Notes |
137137
//! |:-----------------------------------|:---------------:|:--------------------------------------:|
138-
//! | enumeratesigners | version | UNTESTED |
138+
//! | enumeratesigners | version | |
139139
//!
140140
//! </details>
141141
//!

types/src/v24/mod.rs

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -136,7 +136,7 @@
136136
//!
137137
//! | JSON-RPC Method Name | Returns | Notes |
138138
//! |:-----------------------------------|:---------------:|:--------------------------------------:|
139-
//! | enumeratesigners | version | UNTESTED |
139+
//! | enumeratesigners | version | |
140140
//!
141141
//! </details>
142142
//!

types/src/v25/mod.rs

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -137,7 +137,7 @@
137137
//!
138138
//! | JSON-RPC Method Name | Returns | Notes |
139139
//! |:-----------------------------------|:---------------:|:--------------------------------------:|
140-
//! | enumeratesigners | version | UNTESTED |
140+
//! | enumeratesigners | version | |
141141
//!
142142
//! </details>
143143
//!

types/src/v25/wallet/into.rs

Whitespace-only changes.

types/src/v26/mod.rs

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -145,7 +145,7 @@
145145
//!
146146
//! | JSON-RPC Method Name | Returns | Notes |
147147
//! |:-----------------------------------|:---------------:|:--------------------------------------:|
148-
//! | enumeratesigners | version | UNTESTED |
148+
//! | enumeratesigners | version | |
149149
//!
150150
//! </details>
151151
//!

types/src/v27/mod.rs

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -145,7 +145,7 @@
145145
//!
146146
//! | JSON-RPC Method Name | Returns | Notes |
147147
//! |:-----------------------------------|:---------------:|:--------------------------------------:|
148-
//! | enumeratesigners | version | UNTESTED |
148+
//! | enumeratesigners | version | |
149149
//!
150150
//! </details>
151151
//!

types/src/v28/mod.rs

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -145,7 +145,7 @@
145145
//!
146146
//! | JSON-RPC Method Name | Returns | Notes |
147147
//! |:-----------------------------------|:---------------:|:--------------------------------------:|
148-
//! | enumeratesigners | version | UNTESTED |
148+
//! | enumeratesigners | version | |
149149
//!
150150
//! </details>
151151
//!

types/src/v29/mod.rs

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -146,7 +146,7 @@
146146
//!
147147
//! | JSON-RPC Method Name | Returns | Notes |
148148
//! |:-----------------------------------|:---------------:|:--------------------------------------:|
149-
//! | enumeratesigners | version | UNTESTED |
149+
//! | enumeratesigners | version | |
150150
//!
151151
//! </details>
152152
//!

0 commit comments

Comments
 (0)