[tor-commits] [sbws/master] fix: tests: Add set_under_min_report

juga at torproject.org juga at torproject.org
Wed Mar 27 12:42:11 UTC 2019


commit 73c0b68eb4afdf74ed5eff30e57d8a80cdbaa84d
Author: juga0 <juga at riseup.net>
Date:   Wed Mar 27 06:08:48 2019 +0000

    fix: tests: Add set_under_min_report
    
    to test that the `under_min_report` KeyValue is added when the
    number of eligible relays is less than the 60% of relays in the
    consensus.
---
 tests/unit/lib/test_v3bwfile.py | 35 +++++++++++++++++++++++++++++++++++
 1 file changed, 35 insertions(+)

diff --git a/tests/unit/lib/test_v3bwfile.py b/tests/unit/lib/test_v3bwfile.py
index 7065cfa..b84a6f4 100644
--- a/tests/unit/lib/test_v3bwfile.py
+++ b/tests/unit/lib/test_v3bwfile.py
@@ -474,3 +474,38 @@ def test_time_measure_half_network(caplog):
     assert header.time_to_report_half_network == '70200'  # 19.5h
     expected_log = "Estimated time to measure the network: 39 hours."  # 19.5*2
     assert caplog.records[-1].getMessage() == expected_log
+
+
+ at mock.patch.object(V3BWFile, 'read_number_consensus_relays')
+def test_set_under_min_report(mock_consensus, conf, datadir):
+    # The number of relays (1) is the same as the ones in the consensus,
+    # therefore there is no any relay excluded and under_min_report is not set.
+    mock_consensus.return_value = 1
+    state_fpath = conf['paths']['state_fpath']
+    results = load_result_file(str(datadir.join("results.txt")))
+    v3bwfile = V3BWFile.from_results(results, '', '', state_fpath)
+    bwl = v3bwfile.bw_lines[0]
+    assert not hasattr(bwl, "vote")
+    assert not hasattr(bwl, "under_min_report")
+    assert bwl.bw != 1
+
+    # The number of relays is the same as the ones in the consensus,
+    # but after filtering there's no any, under_min_report is set to 1
+    # and unmeasured was also set to 1.
+    # After filtering the relay is excluded because there's only 1 success
+    # result and it should have at least 2 (min_num)
+    v3bwfile = V3BWFile.from_results(results, '', '', state_fpath, min_num=2)
+    bwl = v3bwfile.bw_lines[0]
+    assert bwl.vote == 0
+    assert bwl.under_min_report == 1
+    assert bwl.unmeasured == '1'
+    assert bwl.bw == 1
+
+    # The number of relays after scaling is than the 60% in the network,
+    # therefore the relays are excluded and under_min_report is set to 1.
+    mock_consensus.return_value = 3
+    v3bwfile = V3BWFile.from_results(results, '', '', state_fpath)
+    bwl = v3bwfile.bw_lines[0]
+    assert bwl.vote == 0
+    assert bwl.under_min_report == 1
+    assert bwl.bw != 1





More information about the tor-commits mailing list