[tor-commits] [sbws/maint-1.1] fix: tests: Check the files generated in test net
juga at torproject.org
juga at torproject.org
Tue Apr 14 13:53:20 UTC 2020
commit 4e2ccf3c34df54139954256528813305b48596c0
Author: juga0 <juga at riseup.net>
Date: Sun Mar 22 16:28:16 2020 +0000
fix: tests: Check the files generated in test net
Test that the results, state and bandwidth file generated by running
the scanner and the generator in the test network are correct.
---
tests/integration/conftest.py | 11 ++++-----
tests/integration/test_files.py | 49 +++++++++++++++++++++++++++++++++++++++++
2 files changed, 55 insertions(+), 5 deletions(-)
diff --git a/tests/integration/conftest.py b/tests/integration/conftest.py
index b1312d9..170ea51 100644
--- a/tests/integration/conftest.py
+++ b/tests/integration/conftest.py
@@ -36,15 +36,15 @@ def tmpdir(tmpdir_factory, request):
@pytest.fixture(scope='session')
def sbwshome_empty(tmpdir):
- """Create sbws home inside of the tests tmp dir without initializing."""
- home = tmpdir.join('.sbws')
- os.makedirs(home.strpath, exist_ok=True)
- return home.strpath
+ """Create sbws home inside of the test net tmp dir without initializing."""
+ home = "/tmp/.sbws"
+ os.makedirs(home, exist_ok=True)
+ return home
@pytest.fixture(scope='session')
def sbwshome_dir(sbwshome_empty):
- """Create sbws home inside of the tests tmp dir without initializing."""
+ """Create sbws home inside of the test net tmp dir without initializing."""
os.makedirs(os.path.join(sbwshome_empty, 'datadir'), exist_ok=True)
return sbwshome_empty
@@ -69,6 +69,7 @@ def conf(sbwshome_dir):
"""Default configuration with sbws home in the tmp test dir."""
conf = _get_default_config()
conf['paths']['sbws_home'] = sbwshome_dir
+ conf["paths"]["state_fpath"] = os.path.join(sbwshome_dir, "state.dat")
conf['tor']['run_dpath'] = os.path.join(sbwshome_dir, 'tor', 'run')
conf['destinations']['foo'] = 'on'
conf['destinations.foo'] = {}
diff --git a/tests/integration/test_files.py b/tests/integration/test_files.py
new file mode 100644
index 0000000..aa7973d
--- /dev/null
+++ b/tests/integration/test_files.py
@@ -0,0 +1,49 @@
+"""
+Integration tests for the files with data to be used by the bandwidth file.
+
+"""
+from sbws.lib.resultdump import load_recent_results_in_datadir
+from sbws.lib.v3bwfile import V3BWFile
+from sbws.util.state import State
+
+
+def test_results(conf):
+ results = load_recent_results_in_datadir(5, conf["paths"]["datadir"])
+ for fp, values in results.items():
+ count = max(
+ [
+ len(getattr(r, "relay_recent_measurement_attempt", []))
+ for r in values
+ ]
+ )
+ assert count == 1
+ count = max(
+ [len(getattr(r, "relay_in_recent_consensus", [])) for r in values]
+ )
+ assert count == 1
+ count = max(
+ [len(getattr(r, "relay_recent_priority_list", [])) for r in values]
+ )
+ assert count == 1
+
+
+def test_state(conf):
+ state = State(conf["paths"]["state_fpath"])
+ assert 1 == state.count("recent_consensus")
+ assert 1 == state.count("recent_priority_list")
+ assert 15 == state.count("recent_priority_relay")
+ assert 15 == state.count("recent_measurement_attempt")
+
+
+def test_v3bwfile(conf):
+ bwfile = V3BWFile.from_v1_fpath(
+ conf["paths"]["v3bw_fname"].format("latest")
+ )
+ assert "1" == bwfile.header.recent_consensus_count
+ assert "1" == bwfile.header.recent_priority_list_count
+ assert "15" == bwfile.header.recent_priority_relay_count
+ assert "15" == bwfile.header.recent_measurement_attempt_count
+ for bwline in bwfile.bw_lines:
+ assert 1 == bwline.relay_in_recent_consensus_count
+ assert 1 == bwline.relay_recent_priority_list_count
+ assert 1 == bwline.relay_recent_measurement_attempt_count
More information about the tor-commits
mailing list