diff options
| author | Christophe Besson <cbesson@gmail.com> | 2026-10-02 08:41:22 +0200 |
|---|---|---|
| committer | Christophe Besson <cbesson@gmail.com> | 2026-10-02 08:41:23 +0200 |
| commit | 56a8cf9167e8c7b0f2df15afed88031608adf782 (patch) | |
| tree | 69bd16b7016fbaf95c16ad828d0ea29ac16a65f9 /packages/meshbay-node | |
| parent | e941cc4c39c38a12220153ea572bd4c7bb92fde0 (diff) | |
| download | meshbay-56a8cf9167e8c7b0f2df15afed88031608adf782.tar.gz | |
test(node): node.toml fixtures use POSIX paths, and a Windows-impossible folder is skipped
The root fixtures wrote `path = C:\Users\...`, which is not valid TOML:
node_toml now reads values with tomllib, so the four tests failed on Windows.
The node and the app always write paths with `/`, as the other fixtures do.
A folder named with a quote and a newline cannot exist on Windows.
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
Diffstat (limited to 'packages/meshbay-node')
| -rw-r--r-- | packages/meshbay-node/tests/test_attach_from_the_hub.py | 4 | ||||
| -rw-r--r-- | packages/meshbay-node/tests/test_node_status.py | 17 |
2 files changed, 13 insertions, 8 deletions
diff --git a/packages/meshbay-node/tests/test_attach_from_the_hub.py b/packages/meshbay-node/tests/test_attach_from_the_hub.py index f4aaa25..acc9d18 100644 --- a/packages/meshbay-node/tests/test_attach_from_the_hub.py +++ b/packages/meshbay-node/tests/test_attach_from_the_hub.py @@ -10,6 +10,7 @@ group name chosen on the hub, a folder name — so none of it may end a TOML string and write lines of its own. """ +import sys import tomllib from pathlib import Path @@ -79,6 +80,9 @@ async def test_a_group_name_cannot_write_lines_into_node_toml(tmp_path): assert hosted["node"]["ui_port"] == 18000 +@pytest.mark.skipif(sys.platform == "win32", + reason="Windows refuses a quote or a newline in a folder name, and a " + "path is written with `/`: there is no such folder to write") async def test_a_folder_name_cannot_either(tmp_path): state = _state(tmp_path, {"id": GID, "name": "Films"}) await ops.attach_group(state, "Films", str(tmp_path / "share")) diff --git a/packages/meshbay-node/tests/test_node_status.py b/packages/meshbay-node/tests/test_node_status.py index bd63f8e..91c07b6 100644 --- a/packages/meshbay-node/tests/test_node_status.py +++ b/packages/meshbay-node/tests/test_node_status.py @@ -266,7 +266,7 @@ async def test_add_root_creates_directory_and_returns_info(tmp_path): conf = tmp_path / "node.toml" conf.write_text(f'[[groups]]\nid = "{GROUP}"\nname = "test"\n\n' - f' [[groups.roots]]\n path = "{shared}"\n', encoding="utf-8") + f' [[groups.roots]]\n path = "{shared.as_posix()}"\n', encoding="utf-8") node_cfg = NodeConfig.__new__(NodeConfig) node_cfg.groups = [cfg] @@ -308,7 +308,7 @@ async def test_remove_root_requires_at_least_one_remaining(tmp_path): conf = tmp_path / "node.toml" conf.write_text(f'[[groups]]\nid = "{GROUP}"\nname = "test"\n\n' - f' [[groups.roots]]\n path = "{shared}"\n', encoding="utf-8") + f' [[groups.roots]]\n path = "{shared.as_posix()}"\n', encoding="utf-8") index = GroupIndex(group_id=GROUP, sk_node=Ed25519PrivateKey.generate()) roots = one_root(shared) state = { @@ -343,8 +343,9 @@ async def test_removing_a_writable_root_is_allowed(tmp_path): conf = tmp_path / "node.toml" conf.write_text( f'[[groups]]\nid = "{GROUP}"\nname = "test"\n\n' - f' [[groups.roots]]\n path = "{d1}"\n name = "incoming"\n writable = true\n\n' - f' [[groups.roots]]\n path = "{d2}"\n name = "shared"\n', encoding="utf-8") + f' [[groups.roots]]\n path = "{d1.as_posix()}"\n name = "incoming"\n' + ' writable = true\n\n' + f' [[groups.roots]]\n path = "{d2.as_posix()}"\n name = "shared"\n', encoding="utf-8") roots = RootSet.build([asdict(r) for r in cfg.roots]) index = GroupIndex(group_id=GROUP, sk_node=Ed25519PrivateKey.generate()) state = { @@ -380,7 +381,7 @@ async def test_update_root_rewrites_the_flags_in_node_toml(tmp_path): f'[[groups]]\nid = "{GROUP}"\nname = "test"\n\n' f' [[groups.roots]]\n' f' # the operator explained this one to themselves\n' - f' path = "{d1}"\n name = "media"\n', encoding="utf-8") + f' path = "{d1.as_posix()}"\n name = "media"\n', encoding="utf-8") roots = RootSet.build([asdict(r) for r in cfg.roots]) index = GroupIndex(group_id=GROUP, sk_node=Ed25519PrivateKey.generate()) state = { @@ -429,7 +430,7 @@ async def test_update_root_replaces_a_legacy_upload_line(tmp_path): conf = tmp_path / "node.toml" conf.write_text( f'[[groups]]\nid = "{GROUP}"\nname = "test"\n\n' - f' [[groups.roots]]\n path = "{d1}"\n name = "media"\n' + f' [[groups.roots]]\n path = "{d1.as_posix()}"\n name = "media"\n' f' upload = true\n', encoding="utf-8") roots = RootSet.build([asdict(r) for r in cfg.roots]) index = GroupIndex(group_id=GROUP, sk_node=Ed25519PrivateKey.generate()) @@ -462,8 +463,8 @@ async def test_remove_root_succeeds_with_two_roots(tmp_path): conf = tmp_path / "node.toml" conf.write_text( f'[[groups]]\nid = "{GROUP}"\nname = "test"\n\n' - f' [[groups.roots]]\n path = "{d1}"\n name = "dir1"\n\n' - f' [[groups.roots]]\n path = "{d2}"\n name = "dir2"\n', encoding="utf-8") + f' [[groups.roots]]\n path = "{d1.as_posix()}"\n name = "dir1"\n\n' + f' [[groups.roots]]\n path = "{d2.as_posix()}"\n name = "dir2"\n', encoding="utf-8") roots = RootSet.build([asdict(r) for r in cfg.roots]) index = GroupIndex(group_id=GROUP, sk_node=Ed25519PrivateKey.generate()) state = { |