From 58f41a2e12a7794f0cc0d488ebde58d701adb7fa Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Arturo=20Filast=C3=B2?= Date: Wed, 24 Apr 2024 14:57:44 +0200 Subject: [PATCH] Add more test cases --- oonipipeline/tests/_fixtures.py | 2 ++ oonipipeline/tests/test_analysis.py | 54 ++++++++++++++++++++++++++++- 2 files changed, 55 insertions(+), 1 deletion(-) diff --git a/oonipipeline/tests/_fixtures.py b/oonipipeline/tests/_fixtures.py index 47960b32..45b7fb92 100644 --- a/oonipipeline/tests/_fixtures.py +++ b/oonipipeline/tests/_fixtures.py @@ -33,6 +33,8 @@ "20221101055235.141387_RU_webconnectivity_046ce024dd76b564", # ru_blocks_twitter "20230907000740.785053_BR_httpinvalidrequestline_bdfe6d70dcbda5e9", # middlebox detected "20221110235922.335062_IR_webconnectivity_e4114ee32b8dbf74", # Iran blocking reddit + "20240420235427.477327_US_webconnectivity_9b3cac038dc2ba22", # down site + "20240302000048.790188_RU_webconnectivity_e7ffd3bc0f525eb7", # connection reset RU ] SAMPLE_POSTCANS = ["2024030100_AM_webconnectivity.n1.0.tar.gz"] diff --git a/oonipipeline/tests/test_analysis.py b/oonipipeline/tests/test_analysis.py index 7e6ca77b..c30efebd 100644 --- a/oonipipeline/tests/test_analysis.py +++ b/oonipipeline/tests/test_analysis.py @@ -324,5 +324,57 @@ def test_website_experiment_results(measurements, netinfodb, fingerprintdb): assert ok_dict["tcp"] == 0 blocked_dict = dict(zip(er[0].loni_blocked_keys, er[0].loni_blocked_values)) - print(blocked_dict) assert blocked_dict["tcp.timeout"] > 0.4 + + +def test_website_web_analysis_down(measurements, netinfodb, fingerprintdb): + msmt = load_measurement( + msmt_path=measurements[ + "20240420235427.477327_US_webconnectivity_9b3cac038dc2ba22" + ] + ) + er, web_analysis, web_obs, web_ctrl_obs = make_web_er_from_msmt( + msmt, fingerprintdb=fingerprintdb, netinfodb=netinfodb + ) + assert len(web_analysis) == len(web_obs) + assert len(web_ctrl_obs) == 3 + + assert len(er) == 1 + assert er[0].loni_ok_value < 0.2 + ok_dict = dict(zip(er[0].loni_ok_keys, er[0].loni_ok_values)) + assert ok_dict["tcp"] == 0 + + down_dict = dict(zip(er[0].loni_down_keys, er[0].loni_down_values)) + + blocked_dict = dict(zip(er[0].loni_blocked_keys, er[0].loni_blocked_values)) + + assert sum(down_dict.values()) > sum(blocked_dict.values()) + assert down_dict["tcp.timeout"] > 0.5 + + +def test_website_web_analysis_blocked_connect_reset( + measurements, netinfodb, fingerprintdb +): + msmt_path = measurements[ + "20240302000048.790188_RU_webconnectivity_e7ffd3bc0f525eb7" + ] + msmt = load_measurement(msmt_path=msmt_path) + er, web_analysis, web_obs, web_ctrl_obs = make_web_er_from_msmt( + msmt, fingerprintdb=fingerprintdb, netinfodb=netinfodb + ) + # assert len(web_analysis) == len(web_obs) + assert len(web_ctrl_obs) == 4 + + assert len(er) == 1 + # TODO(art): this should be changed + # assert er[0].loni_ok_value == 0 + assert er[0].loni_ok_value < 0.2 + + ok_dict = dict(zip(er[0].loni_ok_keys, er[0].loni_ok_values)) + assert ok_dict["tls"] == 0 + + down_dict = dict(zip(er[0].loni_down_keys, er[0].loni_down_values)) + blocked_dict = dict(zip(er[0].loni_blocked_keys, er[0].loni_blocked_values)) + + assert sum(down_dict.values()) < sum(blocked_dict.values()) + assert blocked_dict["tls.connection_reset"] > 0.5