From 4926d50a858109f5724735d9a196e9bb52ca18d6 Mon Sep 17 00:00:00 2001 From: Zeke Foppa Date: Fri, 11 Oct 2024 09:21:17 -0700 Subject: [PATCH 01/19] [bfops/cli-server]: do thing --- crates/cli/src/subcommands/server.rs | 20 +++++++++++++------- 1 file changed, 13 insertions(+), 7 deletions(-) diff --git a/crates/cli/src/subcommands/server.rs b/crates/cli/src/subcommands/server.rs index 4bec7c8ac7..e52b976b3b 100644 --- a/crates/cli/src/subcommands/server.rs +++ b/crates/cli/src/subcommands/server.rs @@ -26,7 +26,7 @@ fn get_subcommands() -> Vec { Command::new("set-default") .about("Set the default server for future operations") .arg( - common_args::server() + Arg::new("server") .help("The nickname, host name or URL of the new default server") .required(true), ), @@ -50,7 +50,7 @@ fn get_subcommands() -> Vec { Command::new("remove") .about("Remove a saved server configuration") .arg( - common_args::server() + Arg::new("server") .help("The nickname, host name or URL of the server to remove") .required(true), ) @@ -78,12 +78,11 @@ fn get_subcommands() -> Vec { .arg(common_args::server().help("The nickname, host name or URL of the server to ping")), Command::new("edit") .about("Update a saved server's nickname, host name or protocol") - .arg(common_args::server().help("The nickname, host name or URL of the server")) + .arg(Arg::new("server").help("The nickname, host name or URL of the server")) .arg( Arg::new("nickname") .help("A new nickname to assign the server configuration") - .short('n') - .long("nickname"), + .long("new-name"), ) .arg( Arg::new("host") @@ -367,8 +366,15 @@ pub async fn exec_edit(mut config: Config, args: &ArgMatches) -> Result<(), anyh let old_url = config.get_host_url(Some(server))?; let new_nick = args.get_one::("nickname").map(|s| s.as_str()); - let new_host = args.get_one::("host").map(|s| s.as_str()); - let new_proto = args.get_one::("protocol").map(|s| s.as_str()); + let new_url = args.get_one::("url").map(|s| s.as_str()); + let (new_host, new_proto) = match new_url { + None => (None, None), + Some(new_url) => { + let (new_host, new_proto) = host_or_url_to_host_and_protocol(new_url); + let new_proto = new_proto.ok_or_else(|| anyhow::anyhow!("Invalid url: {}", new_url))?; + (Some(new_host), Some(new_proto)) + } + }; let no_fingerprint = args.get_flag("no-fingerprint"); let delete_identities = args.get_flag("delete-obsolete-identities"); From ecac762372da478c0c0c5a9c7e5fc651e1176827 Mon Sep 17 00:00:00 2001 From: Zeke Foppa Date: Fri, 11 Oct 2024 09:21:20 -0700 Subject: [PATCH 02/19] [bfops/cli-server]: empty From 0681369f1e7b49e3afcba9b2f159ae1712312542 Mon Sep 17 00:00:00 2001 From: Zeke Foppa Date: Fri, 11 Oct 2024 09:27:54 -0700 Subject: [PATCH 03/19] [bfops/cli-server]: review --- crates/cli/src/subcommands/server.rs | 9 +++++++-- 1 file changed, 7 insertions(+), 2 deletions(-) diff --git a/crates/cli/src/subcommands/server.rs b/crates/cli/src/subcommands/server.rs index e52b976b3b..78a6ad27bd 100644 --- a/crates/cli/src/subcommands/server.rs +++ b/crates/cli/src/subcommands/server.rs @@ -32,7 +32,12 @@ fn get_subcommands() -> Vec { ), Command::new("add") .about("Add a new server configuration") - .arg(Arg::new("url").help("The URL of the server to add").required(true)) + .arg( + Arg::new("url") + .long("url") + .help("The URL of the server to add") + .required(true), + ) .arg(Arg::new("name").help("Nickname for this server").required(true)) .arg( Arg::new("default") @@ -75,7 +80,7 @@ fn get_subcommands() -> Vec { ), Command::new("ping") .about("Checks to see if a SpacetimeDB host is online") - .arg(common_args::server().help("The nickname, host name or URL of the server to ping")), + .arg(Arg::new("server").help("The nickname, host name or URL of the server to ping")), Command::new("edit") .about("Update a saved server's nickname, host name or protocol") .arg(Arg::new("server").help("The nickname, host name or URL of the server")) From 211f2a91e7baa6df8824772fd1d5b02840bf4e79 Mon Sep 17 00:00:00 2001 From: Zeke Foppa Date: Fri, 11 Oct 2024 09:48:18 -0700 Subject: [PATCH 04/19] [bfops/cli-server]: review --- crates/cli/src/subcommands/server.rs | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/crates/cli/src/subcommands/server.rs b/crates/cli/src/subcommands/server.rs index 78a6ad27bd..4ac7bb685c 100644 --- a/crates/cli/src/subcommands/server.rs +++ b/crates/cli/src/subcommands/server.rs @@ -69,7 +69,7 @@ fn get_subcommands() -> Vec { .arg(common_args::yes()), Command::new("fingerprint") .about("Show or update a saved server's fingerprint") - .arg(common_args::server().help("The nickname, host name or URL of the server")) + .arg(Arg::new("server").help("The nickname, host name or URL of the server")) .arg(common_args::yes()) .arg( Arg::new("delete-obsolete-identities") From 62ce7cf404101a9532465ec5870d7ce9b5d846fb Mon Sep 17 00:00:00 2001 From: Zeke Foppa Date: Fri, 11 Oct 2024 09:49:00 -0700 Subject: [PATCH 05/19] [bfops/cli-server]: update smoketests --- smoketests/__init__.py | 2 +- smoketests/tests/servers.py | 6 +++--- 2 files changed, 4 insertions(+), 4 deletions(-) diff --git a/smoketests/__init__.py b/smoketests/__init__.py index c9028686b8..bc11c650b8 100644 --- a/smoketests/__init__.py +++ b/smoketests/__init__.py @@ -192,7 +192,7 @@ def reset_config(cls): def fingerprint(self): # Fetch the server's fingerprint; required for `identity list`. - self.spacetime("server", "fingerprint", "-s", "localhost", "-y") + self.spacetime("server", "fingerprint", "localhost", "-y") def new_identity(self, *, email, default=False): output = self.spacetime("identity", "new", "--no-email" if email is None else f"--email={email}") diff --git a/smoketests/tests/servers.py b/smoketests/tests/servers.py index a144816f6d..9149072825 100644 --- a/smoketests/tests/servers.py +++ b/smoketests/tests/servers.py @@ -15,11 +15,11 @@ def test_servers(self): self.assertRegex(servers, re.compile(r"^\s*testnet\.spacetimedb\.com\s+https\s+testnet\s*$", re.M)) self.assertRegex(servers, re.compile(r"^\s*\*\*\*\s+127\.0\.0\.1:3000\s+http\s+localhost\s*$", re.M)) - out = self.spacetime("server", "fingerprint", "-s", "http://127.0.0.1:3000", "-y") + out = self.spacetime("server", "fingerprint", "http://127.0.0.1:3000", "-y") self.assertIn("No saved fingerprint for server 127.0.0.1:3000.", out) - out = self.spacetime("server", "fingerprint", "-s", "http://127.0.0.1:3000") + out = self.spacetime("server", "fingerprint", "http://127.0.0.1:3000") self.assertIn("Fingerprint is unchanged for server 127.0.0.1:3000", out) - out = self.spacetime("server", "fingerprint", "-s", "localhost") + out = self.spacetime("server", "fingerprint", "localhost") self.assertIn("Fingerprint is unchanged for server localhost", out) From cb4e56d3258ea39a05fe814b73abca196aeb0674 Mon Sep 17 00:00:00 2001 From: Zeke Foppa Date: Fri, 11 Oct 2024 09:50:00 -0700 Subject: [PATCH 06/19] [bfops/cli-server]: smoketests --- smoketests/tests/servers.py | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/smoketests/tests/servers.py b/smoketests/tests/servers.py index 9149072825..687a89ea59 100644 --- a/smoketests/tests/servers.py +++ b/smoketests/tests/servers.py @@ -7,7 +7,7 @@ class Servers(Smoketest): def test_servers(self): """Verify that we can add and list server configurations""" - out = self.spacetime("server", "add", "https://testnet.spacetimedb.com", "testnet", "--no-fingerprint") + out = self.spacetime("server", "add", "--url", "https://testnet.spacetimedb.com", "testnet", "--no-fingerprint") self.assertEqual(extract_field(out, "Host:"), "testnet.spacetimedb.com") self.assertEqual(extract_field(out, "Protocol:"), "https") From 869e48070dc17ccfaacaae1827e3a6b0550baf53 Mon Sep 17 00:00:00 2001 From: Zeke Foppa Date: Fri, 11 Oct 2024 10:08:49 -0700 Subject: [PATCH 07/19] [bfops/cli-server]: add smoketest --- smoketests/tests/servers.py | 12 ++++++++++++ 1 file changed, 12 insertions(+) diff --git a/smoketests/tests/servers.py b/smoketests/tests/servers.py index 687a89ea59..46462a3300 100644 --- a/smoketests/tests/servers.py +++ b/smoketests/tests/servers.py @@ -23,3 +23,15 @@ def test_servers(self): out = self.spacetime("server", "fingerprint", "localhost") self.assertIn("Fingerprint is unchanged for server localhost", out) + + def edit_server(self): + """Verify that we can edit server configurations""" + + out = self.spacetime("server", "add", "--url", "https://foo.com", "foo", "--no-fingerprint") + out = self.spacetime("server", "edit", "--url", "https://testnet.spacetimedb.com", "--new-name", "testnet", "--no-fingerprint") + self.assertEqual(extract_field(out, "Host:"), "testnet.spacetimedb.com") + self.assertEqual(extract_field(out, "Protocol:"), "https") + + servers = self.spacetime("server", "list") + self.assertRegex(servers, re.compile(r"^\s*testnet\.spacetimedb\.com\s+https\s+testnet\s*$", re.M)) + self.assertRegex(servers, re.compile(r"^\s*\*\*\*\s+127\.0\.0\.1:3000\s+http\s+localhost\s*$", re.M)) From 7f2c076cdba38969743101eb4406f695fff660ab Mon Sep 17 00:00:00 2001 From: Zeke Foppa Date: Thu, 17 Oct 2024 11:32:08 -0700 Subject: [PATCH 08/19] [bfops/cli-server]: review --- crates/cli/src/subcommands/server.rs | 44 +++++++++++++++------------- 1 file changed, 23 insertions(+), 21 deletions(-) diff --git a/crates/cli/src/subcommands/server.rs b/crates/cli/src/subcommands/server.rs index 4ac7bb685c..8cb78ab549 100644 --- a/crates/cli/src/subcommands/server.rs +++ b/crates/cli/src/subcommands/server.rs @@ -69,7 +69,11 @@ fn get_subcommands() -> Vec { .arg(common_args::yes()), Command::new("fingerprint") .about("Show or update a saved server's fingerprint") - .arg(Arg::new("server").help("The nickname, host name or URL of the server")) + .arg( + Arg::new("server") + .required(true) + .help("The nickname, host name or URL of the server"), + ) .arg(common_args::yes()) .arg( Arg::new("delete-obsolete-identities") @@ -80,26 +84,27 @@ fn get_subcommands() -> Vec { ), Command::new("ping") .about("Checks to see if a SpacetimeDB host is online") - .arg(Arg::new("server").help("The nickname, host name or URL of the server to ping")), + .arg( + Arg::new("server") + .required(true) + .help("The nickname, host name or URL of the server to ping"), + ), Command::new("edit") .about("Update a saved server's nickname, host name or protocol") - .arg(Arg::new("server").help("The nickname, host name or URL of the server")) + .arg( + Arg::new("server") + .required(true) + .help("The nickname, host name or URL of the server"), + ) .arg( Arg::new("nickname") .help("A new nickname to assign the server configuration") .long("new-name"), ) .arg( - Arg::new("host") - .help("A new hostname to assign the server configuration") - .short('H') - .long("host"), - ) - .arg( - Arg::new("protocol") - .help("A new protocol to assign the server configuration; http or https") - .short('p') - .long("protocol"), + Arg::new("url") + .long("url") + .help("A new URL to assign the server configuration"), ) .arg( Arg::new("no-fingerprint") @@ -326,11 +331,11 @@ async fn update_server_fingerprint( } pub async fn exec_fingerprint(mut config: Config, args: &ArgMatches) -> Result<(), anyhow::Error> { - let server = args.get_one::("server").map(|s| s.as_str()); + let server = args.get_one::("server").unwrap().as_str(); let delete_identities = args.get_flag("delete-obsolete-identities"); let force = args.get_flag("force"); - if update_server_fingerprint(&mut config, server, delete_identities).await? { + if update_server_fingerprint(&mut config, Some(server), delete_identities).await? { if !y_or_n(force, "Continue?")? { anyhow::bail!("Aborted"); } @@ -342,8 +347,8 @@ pub async fn exec_fingerprint(mut config: Config, args: &ArgMatches) -> Result<( } pub async fn exec_ping(config: Config, args: &ArgMatches) -> Result<(), anyhow::Error> { - let server = args.get_one::("server").map(|s| s.as_ref()); - let url = config.get_host_url(server)?; + let server = args.get_one::("server").unwrap().as_str(); + let url = config.get_host_url(Some(server))?; let builder = reqwest::Client::new().get(format!("{}/database/ping", url).as_str()); let response = builder.send().await?; @@ -363,10 +368,7 @@ pub async fn exec_ping(config: Config, args: &ArgMatches) -> Result<(), anyhow:: } pub async fn exec_edit(mut config: Config, args: &ArgMatches) -> Result<(), anyhow::Error> { - let server = args - .get_one::("server") - .map(|s| s.as_str()) - .expect("Supply a server to spacetime server edit"); + let server = args.get_one::("server").unwrap().as_str(); let old_url = config.get_host_url(Some(server))?; From 1a94e6e674a39c1740e660387ffd8ce1d6a7ad17 Mon Sep 17 00:00:00 2001 From: Zeke Foppa Date: Thu, 17 Oct 2024 11:33:08 -0700 Subject: [PATCH 09/19] [bfops/cli-server]: fix smoketests --- smoketests/tests/servers.py | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/smoketests/tests/servers.py b/smoketests/tests/servers.py index 46462a3300..a4e0f129fa 100644 --- a/smoketests/tests/servers.py +++ b/smoketests/tests/servers.py @@ -24,7 +24,7 @@ def test_servers(self): out = self.spacetime("server", "fingerprint", "localhost") self.assertIn("Fingerprint is unchanged for server localhost", out) - def edit_server(self): + def test_edit_server(self): """Verify that we can edit server configurations""" out = self.spacetime("server", "add", "--url", "https://foo.com", "foo", "--no-fingerprint") From 275757135d1f0285a0868ad25badcc1e5ec82b5a Mon Sep 17 00:00:00 2001 From: Zeke Foppa Date: Thu, 17 Oct 2024 11:46:03 -0700 Subject: [PATCH 10/19] [bfops/cli-server]: fix smoketests --- smoketests/tests/servers.py | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/smoketests/tests/servers.py b/smoketests/tests/servers.py index a4e0f129fa..9f2cfc9e10 100644 --- a/smoketests/tests/servers.py +++ b/smoketests/tests/servers.py @@ -28,7 +28,7 @@ def test_edit_server(self): """Verify that we can edit server configurations""" out = self.spacetime("server", "add", "--url", "https://foo.com", "foo", "--no-fingerprint") - out = self.spacetime("server", "edit", "--url", "https://testnet.spacetimedb.com", "--new-name", "testnet", "--no-fingerprint") + out = self.spacetime("server", "edit", "foo", "--url", "https://testnet.spacetimedb.com", "--new-name", "testnet", "--no-fingerprint") self.assertEqual(extract_field(out, "Host:"), "testnet.spacetimedb.com") self.assertEqual(extract_field(out, "Protocol:"), "https") From 264ccb7a59de910893470673d645b75ec4049e89 Mon Sep 17 00:00:00 2001 From: Zeke Foppa Date: Thu, 17 Oct 2024 12:13:09 -0700 Subject: [PATCH 11/19] [bfops/fix-server-edit]: do thing --- crates/cli/src/subcommands/server.rs | 1 + smoketests/tests/servers.py | 12 ++++++++++++ 2 files changed, 13 insertions(+) diff --git a/crates/cli/src/subcommands/server.rs b/crates/cli/src/subcommands/server.rs index 4bec7c8ac7..ea2b135fcc 100644 --- a/crates/cli/src/subcommands/server.rs +++ b/crates/cli/src/subcommands/server.rs @@ -379,6 +379,7 @@ pub async fn exec_edit(mut config: Config, args: &ArgMatches) -> Result<(), anyh } let (old_nick, old_host, old_proto) = config.edit_server(server, new_nick, new_host, new_proto)?; + let server = new_nick.unwrap_or(server); if let (Some(new_nick), Some(old_nick)) = (new_nick, old_nick) { println!("Changing nickname from {} to {}", old_nick, new_nick); diff --git a/smoketests/tests/servers.py b/smoketests/tests/servers.py index a144816f6d..a74c2ba7fd 100644 --- a/smoketests/tests/servers.py +++ b/smoketests/tests/servers.py @@ -23,3 +23,15 @@ def test_servers(self): out = self.spacetime("server", "fingerprint", "-s", "localhost") self.assertIn("Fingerprint is unchanged for server localhost", out) + + def test_edit_server(self): + """Verify that we can edit server configurations""" + + out = self.spacetime("server", "add", "--url", "https://foo.com", "foo", "--no-fingerprint") + out = self.spacetime("server", "edit", "-s", "foo", "--host", "testnet.spacetimedb.com", "--nickname", "testnet", "--no-fingerprint") + self.assertEqual(extract_field(out, "Host:"), "testnet.spacetimedb.com") + self.assertEqual(extract_field(out, "Protocol:"), "https") + + servers = self.spacetime("server", "list") + self.assertRegex(servers, re.compile(r"^\s*testnet\.spacetimedb\.com\s+https\s+testnet\s*$", re.M)) + self.assertRegex(servers, re.compile(r"^\s*\*\*\*\s+127\.0\.0\.1:3000\s+http\s+localhost\s*$", re.M)) From 282633d9118f5abe54bcf0c7c4b813eaa98ffdf0 Mon Sep 17 00:00:00 2001 From: Zeke Foppa Date: Thu, 17 Oct 2024 12:47:05 -0700 Subject: [PATCH 12/19] [bfops/fix-server-edit]: smoketests --- smoketests/tests/servers.py | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/smoketests/tests/servers.py b/smoketests/tests/servers.py index a74c2ba7fd..49aaa7c313 100644 --- a/smoketests/tests/servers.py +++ b/smoketests/tests/servers.py @@ -27,7 +27,7 @@ def test_servers(self): def test_edit_server(self): """Verify that we can edit server configurations""" - out = self.spacetime("server", "add", "--url", "https://foo.com", "foo", "--no-fingerprint") + out = self.spacetime("server", "add", "https://foo.com", "foo", "--no-fingerprint") out = self.spacetime("server", "edit", "-s", "foo", "--host", "testnet.spacetimedb.com", "--nickname", "testnet", "--no-fingerprint") self.assertEqual(extract_field(out, "Host:"), "testnet.spacetimedb.com") self.assertEqual(extract_field(out, "Protocol:"), "https") From ad1bf2d3a8734426d7774e6502d223885217649f Mon Sep 17 00:00:00 2001 From: Zeke Foppa Date: Thu, 17 Oct 2024 13:12:08 -0700 Subject: [PATCH 13/19] [bfops/fix-server-edit]: fix smoketests --- smoketests/tests/servers.py | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/smoketests/tests/servers.py b/smoketests/tests/servers.py index 49aaa7c313..3eb37950d6 100644 --- a/smoketests/tests/servers.py +++ b/smoketests/tests/servers.py @@ -28,7 +28,7 @@ def test_edit_server(self): """Verify that we can edit server configurations""" out = self.spacetime("server", "add", "https://foo.com", "foo", "--no-fingerprint") - out = self.spacetime("server", "edit", "-s", "foo", "--host", "testnet.spacetimedb.com", "--nickname", "testnet", "--no-fingerprint") + out = self.spacetime("server", "edit", "-s", "foo", "--host", "testnet.spacetimedb.com", "--nickname", "testnet", "--no-fingerprint", "--yes") self.assertEqual(extract_field(out, "Host:"), "testnet.spacetimedb.com") self.assertEqual(extract_field(out, "Protocol:"), "https") From 229863e58b79cb1a493e90d6f341c387a3250d37 Mon Sep 17 00:00:00 2001 From: Zeke Foppa Date: Thu, 17 Oct 2024 13:27:30 -0700 Subject: [PATCH 14/19] [bfops/cli-server]: smoketests --- smoketests/tests/servers.py | 2 ++ 1 file changed, 2 insertions(+) diff --git a/smoketests/tests/servers.py b/smoketests/tests/servers.py index 02bafa70a3..d483cd44e6 100644 --- a/smoketests/tests/servers.py +++ b/smoketests/tests/servers.py @@ -35,3 +35,5 @@ def test_edit_server(self): servers = self.spacetime("server", "list") self.assertRegex(servers, re.compile(r"^\s*testnet\.spacetimedb\.com\s+https\s+testnet\s*$", re.M)) self.assertRegex(servers, re.compile(r"^\s*\*\*\*\s+127\.0\.0\.1:3000\s+http\s+localhost\s*$", re.M)) + + self.spacetime("server", "remove", "-s", "testnet") From de8f5c93c649782cb703cf6b45f70147d2911963 Mon Sep 17 00:00:00 2001 From: Zeke Foppa Date: Thu, 17 Oct 2024 13:28:14 -0700 Subject: [PATCH 15/19] [bfops/fix-server-edit]: fix smoketests --- smoketests/tests/servers.py | 2 ++ 1 file changed, 2 insertions(+) diff --git a/smoketests/tests/servers.py b/smoketests/tests/servers.py index 3eb37950d6..c724377220 100644 --- a/smoketests/tests/servers.py +++ b/smoketests/tests/servers.py @@ -35,3 +35,5 @@ def test_edit_server(self): servers = self.spacetime("server", "list") self.assertRegex(servers, re.compile(r"^\s*testnet\.spacetimedb\.com\s+https\s+testnet\s*$", re.M)) self.assertRegex(servers, re.compile(r"^\s*\*\*\*\s+127\.0\.0\.1:3000\s+http\s+localhost\s*$", re.M)) + + self.spacetime("server", "remove", "-s", "foo", "--yes") From 62d8023798fe019a4c020699bb6029ead0fbb13f Mon Sep 17 00:00:00 2001 From: Zeke Foppa Date: Thu, 17 Oct 2024 13:29:14 -0700 Subject: [PATCH 16/19] [bfops/fix-server-edit]: fix smoketests --- smoketests/tests/servers.py | 4 +++- 1 file changed, 3 insertions(+), 1 deletion(-) diff --git a/smoketests/tests/servers.py b/smoketests/tests/servers.py index c724377220..3d51de3343 100644 --- a/smoketests/tests/servers.py +++ b/smoketests/tests/servers.py @@ -24,6 +24,8 @@ def test_servers(self): out = self.spacetime("server", "fingerprint", "-s", "localhost") self.assertIn("Fingerprint is unchanged for server localhost", out) + self.spacetime("server", "remove", "-s", "testnet", "--yes") + def test_edit_server(self): """Verify that we can edit server configurations""" @@ -36,4 +38,4 @@ def test_edit_server(self): self.assertRegex(servers, re.compile(r"^\s*testnet\.spacetimedb\.com\s+https\s+testnet\s*$", re.M)) self.assertRegex(servers, re.compile(r"^\s*\*\*\*\s+127\.0\.0\.1:3000\s+http\s+localhost\s*$", re.M)) - self.spacetime("server", "remove", "-s", "foo", "--yes") + self.spacetime("server", "remove", "-s", "testnet", "--yes") From c90a922e427cfb21644c2d911ea79811f8f39fc3 Mon Sep 17 00:00:00 2001 From: Zeke Foppa Date: Thu, 17 Oct 2024 13:48:24 -0700 Subject: [PATCH 17/19] [bfops/fix-server-edit]: fix smoketests?!! --- smoketests/tests/servers.py | 9 ++------- 1 file changed, 2 insertions(+), 7 deletions(-) diff --git a/smoketests/tests/servers.py b/smoketests/tests/servers.py index 3d51de3343..638ed5fcf0 100644 --- a/smoketests/tests/servers.py +++ b/smoketests/tests/servers.py @@ -30,12 +30,7 @@ def test_edit_server(self): """Verify that we can edit server configurations""" out = self.spacetime("server", "add", "https://foo.com", "foo", "--no-fingerprint") - out = self.spacetime("server", "edit", "-s", "foo", "--host", "testnet.spacetimedb.com", "--nickname", "testnet", "--no-fingerprint", "--yes") - self.assertEqual(extract_field(out, "Host:"), "testnet.spacetimedb.com") - self.assertEqual(extract_field(out, "Protocol:"), "https") + out = self.spacetime("server", "edit", "-s", "foo", "--host", "edited-testnet.spacetimedb.com", "--nickname", "edited-testnet", "--no-fingerprint", "--yes") servers = self.spacetime("server", "list") - self.assertRegex(servers, re.compile(r"^\s*testnet\.spacetimedb\.com\s+https\s+testnet\s*$", re.M)) - self.assertRegex(servers, re.compile(r"^\s*\*\*\*\s+127\.0\.0\.1:3000\s+http\s+localhost\s*$", re.M)) - - self.spacetime("server", "remove", "-s", "testnet", "--yes") + self.assertRegex(servers, re.compile(r"^\s*edited-testnet\.spacetimedb\.com\s+https\s+edited-testnet\s*$", re.M)) From 89fde1b325be502e86c6a92ab118640cdf941e34 Mon Sep 17 00:00:00 2001 From: Zeke Foppa Date: Thu, 17 Oct 2024 14:00:21 -0700 Subject: [PATCH 18/19] [bfops/fix-server-edit]: revert --- smoketests/tests/servers.py | 2 -- 1 file changed, 2 deletions(-) diff --git a/smoketests/tests/servers.py b/smoketests/tests/servers.py index 638ed5fcf0..0ac5c68166 100644 --- a/smoketests/tests/servers.py +++ b/smoketests/tests/servers.py @@ -24,8 +24,6 @@ def test_servers(self): out = self.spacetime("server", "fingerprint", "-s", "localhost") self.assertIn("Fingerprint is unchanged for server localhost", out) - self.spacetime("server", "remove", "-s", "testnet", "--yes") - def test_edit_server(self): """Verify that we can edit server configurations""" From d04234eda707b8b664a2ca375e78803e29fd471f Mon Sep 17 00:00:00 2001 From: Zeke Foppa Date: Thu, 17 Oct 2024 14:43:14 -0700 Subject: [PATCH 19/19] [bfops/cli-server]: revert --- smoketests/tests/auto_migration.py | 27 +++++++++++++++++++++++++++ 1 file changed, 27 insertions(+) diff --git a/smoketests/tests/auto_migration.py b/smoketests/tests/auto_migration.py index 90c09e5b00..5790016779 100644 --- a/smoketests/tests/auto_migration.py +++ b/smoketests/tests/auto_migration.py @@ -36,6 +36,8 @@ class AddTableAutoMigration(Smoketest): x: f64, y: f64, } + +spacetimedb::filter!("SELECT * FROM person"); """ MODULE_CODE_UPDATED = ( @@ -57,12 +59,28 @@ class AddTableAutoMigration(Smoketest): println!("{}: {}", prefix, book.isbn); } } + +spacetimedb::filter!("SELECT * FROM book"); """ ) + def assertSql(self, sql, expected): + self.maxDiff = None + sql_out = self.spacetime("sql", self.address, sql) + sql_out = "\n".join([line.rstrip() for line in sql_out.splitlines()]) + expected = "\n".join([line.rstrip() for line in expected.splitlines()]) + self.assertMultiLineEqual(sql_out, expected) + def test_add_table_auto_migration(self): """This tests uploading a module with a schema change that should not require clearing the database.""" + # Check the row-level SQL filter is created correctly + self.assertSql("SELECT sql FROM st_row_level_security", """\ + sql +------------------------ + "SELECT * FROM person" +""") + logging.info("Initial publish complete") # initial module code is already published by test framework @@ -83,6 +101,15 @@ def test_add_table_auto_migration(self): self.publish_module(self.address, clear=False) logging.info("Updated") + + # Check the row-level SQL filter is added correctly + self.assertSql("SELECT sql FROM st_row_level_security", """\ + sql +------------------------ + "SELECT * FROM person" + "SELECT * FROM book" +""") + self.logs(100) self.call("add_person", "Husserl")