Loading onionperf/tests/test_visualization.py +55 −13 Original line number Diff line number Diff line Loading @@ -16,7 +16,8 @@ def absolute_data_path(relative_path=""): DATA_DIR = absolute_data_path() def test_create_data_frame_v3(): path = DATA_DIR + "analyses/2021-01-01.op-hk5.onionperf.analysis.json.xz" path = DATA_DIR + "analyses/" filename = "2021-01-01.op-hk5.onionperf.analysis.json.xz" known_ttfbs = [4.134508, 1.129437, 11.376374, 4.29965, 1.49145] known_ttlbs = [34.725328, 11.817973, 18.613478, 26.635889, 11.187625] Loading @@ -36,9 +37,12 @@ def test_create_data_frame_v3(): known_total_public_dls = 3 tgen_viz = TGenVisualization() analysis = OPAnalysis.load(filename=path) tgen_viz.add_dataset([analysis], "test") tgen_viz._TGenVisualization__extract_data_frame() analyses = [] analysis = OPAnalysis.load(filename=filename, input_prefix=path) analyses.append(analysis) tgen_viz.add_dataset(analyses, "test") tgen_viz._TGenVisualization__extract_data_frame(onion=False, public=False) onion_downloads = tgen_viz.data[(tgen_viz.data["server"] == 'onion')] public_downloads = tgen_viz.data[(tgen_viz.data["server"] == 'public')] Loading @@ -55,7 +59,8 @@ def test_create_data_frame_v3(): def test_create_data_frame_v3p1_filters(): path = DATA_DIR + "analyses/2021-06-01.op-hk6a.onionperf.analysis.json.xz" path = DATA_DIR + "analyses/" filename = "2021-06-01.op-hk6a.onionperf.analysis.json.xz" known_ttfbs = [0.926961, 1.056154, 7.770001] known_ttlbs = [10.061804, 10.787324, 286.022849] Loading @@ -73,9 +78,12 @@ def test_create_data_frame_v3p1_filters(): 'ECF1060A8597A846C0C705A1AE260EADEE93B50D'] tgen_viz = TGenVisualization() analysis = OPAnalysis.load(filename=path) tgen_viz.add_dataset([analysis], "test") tgen_viz._TGenVisualization__extract_data_frame() analyses = [] analysis = OPAnalysis.load(filename=filename, input_prefix=path) analyses.append(analysis) tgen_viz.add_dataset(analyses, "test") tgen_viz._TGenVisualization__extract_data_frame(onion=False, public=False) onion_downloads = tgen_viz.data[(tgen_viz.data["server"] == 'onion')] public_downloads = tgen_viz.data[(tgen_viz.data["server"] == 'public')] Loading @@ -93,7 +101,8 @@ def test_create_data_frame_v3p1_filters(): def test_create_data_frame_v3p1_no_filters(): path = DATA_DIR + "analyses/2021-06-01.op-hk6a.onionperf.analysis_no_filters.json.xz" path = DATA_DIR + "analyses/" filename = "2021-06-01.op-hk6a.onionperf.analysis_no_filters.json.xz" known_ttfbs = [0.926961, 1.056154, 1.083673, 1.098328, 1.191881, 7.770001] known_ttlbs = [9.095904, 10.061804, 10.787324, 10.992984, 20.517444, 286.022849] Loading @@ -118,13 +127,14 @@ def test_create_data_frame_v3p1_no_filters(): 'A96DA63E4415E776FBFCCF3DA7154C804534B6E7'] tgen_viz = TGenVisualization() analysis = OPAnalysis.load(filename=path) tgen_viz.add_dataset([analysis], "test") tgen_viz._TGenVisualization__extract_data_frame() analyses = [] analysis = OPAnalysis.load(filename=filename, input_prefix=path) analyses.append(analysis) tgen_viz.add_dataset(analyses, "test") tgen_viz._TGenVisualization__extract_data_frame(onion=False, public=False) onion_downloads = tgen_viz.data[(tgen_viz.data["server"] == 'onion')] public_downloads = tgen_viz.data[(tgen_viz.data["server"] == 'public')] assert_equals(sorted(tgen_viz.data["time_to_first_byte"].to_list()), sorted(known_ttfbs)) assert_equals(sorted(tgen_viz.data["time_to_last_byte"].to_list()), sorted(known_ttlbs)) assert_equals(tgen_viz.data["filesize_bytes"].unique().tolist(), known_filesize_bytes) Loading @@ -133,3 +143,35 @@ def test_create_data_frame_v3p1_no_filters(): assert_equals(len(onion_downloads), known_total_onion_dls) assert_equals(len(public_downloads), known_total_public_dls) assert_equals(sorted(tgen_viz.data["guard"].dropna().to_list()), sorted(known_guards)) def test_exclude_cbt_option(): path = DATA_DIR + "analyses/" filename = "2021-06-01.op-hk6a.onionperf.analysis.json.xz" tgen_viz = TGenVisualization() analyses = [] analysis = OPAnalysis.load(filename=filename, input_prefix=path) analyses.append(analysis) tgen_viz.add_dataset(analyses, "test") tgen_viz._TGenVisualization__extract_data_frame(onion=False, public=False) circuit_id = "181935" measurements = analysis.json_db['data']['op-hk6a']['tor']['circuits'][circuit_id] assert_false(measurements['cbt_set']) assert_true(measurements['filtered_out']) fingerprints = [] for guard in measurements['current_guards']: fg = "${}~{}".format(guard['fingerprint'], guard['nickname']) fingerprints.append(fg) check = False control = ['$0C8CDE060281DDA38F69F1765049D16D9DE9320E~vulgarismagistralis', '$A96DA63E4415E776FBFCCF3DA7154C804534B6E7~3735928559', '$248A96B2A88A3EAB14699B9096CE6ABF77D0606A~Illuminati'] check_ctl = False for fs in tgen_viz.data["fingerprints"]: if fs == fingerprints: check = True if fs == control: check_ctl = True assert_false(check) assert_true(check_ctl) Loading
onionperf/tests/test_visualization.py +55 −13 Original line number Diff line number Diff line Loading @@ -16,7 +16,8 @@ def absolute_data_path(relative_path=""): DATA_DIR = absolute_data_path() def test_create_data_frame_v3(): path = DATA_DIR + "analyses/2021-01-01.op-hk5.onionperf.analysis.json.xz" path = DATA_DIR + "analyses/" filename = "2021-01-01.op-hk5.onionperf.analysis.json.xz" known_ttfbs = [4.134508, 1.129437, 11.376374, 4.29965, 1.49145] known_ttlbs = [34.725328, 11.817973, 18.613478, 26.635889, 11.187625] Loading @@ -36,9 +37,12 @@ def test_create_data_frame_v3(): known_total_public_dls = 3 tgen_viz = TGenVisualization() analysis = OPAnalysis.load(filename=path) tgen_viz.add_dataset([analysis], "test") tgen_viz._TGenVisualization__extract_data_frame() analyses = [] analysis = OPAnalysis.load(filename=filename, input_prefix=path) analyses.append(analysis) tgen_viz.add_dataset(analyses, "test") tgen_viz._TGenVisualization__extract_data_frame(onion=False, public=False) onion_downloads = tgen_viz.data[(tgen_viz.data["server"] == 'onion')] public_downloads = tgen_viz.data[(tgen_viz.data["server"] == 'public')] Loading @@ -55,7 +59,8 @@ def test_create_data_frame_v3(): def test_create_data_frame_v3p1_filters(): path = DATA_DIR + "analyses/2021-06-01.op-hk6a.onionperf.analysis.json.xz" path = DATA_DIR + "analyses/" filename = "2021-06-01.op-hk6a.onionperf.analysis.json.xz" known_ttfbs = [0.926961, 1.056154, 7.770001] known_ttlbs = [10.061804, 10.787324, 286.022849] Loading @@ -73,9 +78,12 @@ def test_create_data_frame_v3p1_filters(): 'ECF1060A8597A846C0C705A1AE260EADEE93B50D'] tgen_viz = TGenVisualization() analysis = OPAnalysis.load(filename=path) tgen_viz.add_dataset([analysis], "test") tgen_viz._TGenVisualization__extract_data_frame() analyses = [] analysis = OPAnalysis.load(filename=filename, input_prefix=path) analyses.append(analysis) tgen_viz.add_dataset(analyses, "test") tgen_viz._TGenVisualization__extract_data_frame(onion=False, public=False) onion_downloads = tgen_viz.data[(tgen_viz.data["server"] == 'onion')] public_downloads = tgen_viz.data[(tgen_viz.data["server"] == 'public')] Loading @@ -93,7 +101,8 @@ def test_create_data_frame_v3p1_filters(): def test_create_data_frame_v3p1_no_filters(): path = DATA_DIR + "analyses/2021-06-01.op-hk6a.onionperf.analysis_no_filters.json.xz" path = DATA_DIR + "analyses/" filename = "2021-06-01.op-hk6a.onionperf.analysis_no_filters.json.xz" known_ttfbs = [0.926961, 1.056154, 1.083673, 1.098328, 1.191881, 7.770001] known_ttlbs = [9.095904, 10.061804, 10.787324, 10.992984, 20.517444, 286.022849] Loading @@ -118,13 +127,14 @@ def test_create_data_frame_v3p1_no_filters(): 'A96DA63E4415E776FBFCCF3DA7154C804534B6E7'] tgen_viz = TGenVisualization() analysis = OPAnalysis.load(filename=path) tgen_viz.add_dataset([analysis], "test") tgen_viz._TGenVisualization__extract_data_frame() analyses = [] analysis = OPAnalysis.load(filename=filename, input_prefix=path) analyses.append(analysis) tgen_viz.add_dataset(analyses, "test") tgen_viz._TGenVisualization__extract_data_frame(onion=False, public=False) onion_downloads = tgen_viz.data[(tgen_viz.data["server"] == 'onion')] public_downloads = tgen_viz.data[(tgen_viz.data["server"] == 'public')] assert_equals(sorted(tgen_viz.data["time_to_first_byte"].to_list()), sorted(known_ttfbs)) assert_equals(sorted(tgen_viz.data["time_to_last_byte"].to_list()), sorted(known_ttlbs)) assert_equals(tgen_viz.data["filesize_bytes"].unique().tolist(), known_filesize_bytes) Loading @@ -133,3 +143,35 @@ def test_create_data_frame_v3p1_no_filters(): assert_equals(len(onion_downloads), known_total_onion_dls) assert_equals(len(public_downloads), known_total_public_dls) assert_equals(sorted(tgen_viz.data["guard"].dropna().to_list()), sorted(known_guards)) def test_exclude_cbt_option(): path = DATA_DIR + "analyses/" filename = "2021-06-01.op-hk6a.onionperf.analysis.json.xz" tgen_viz = TGenVisualization() analyses = [] analysis = OPAnalysis.load(filename=filename, input_prefix=path) analyses.append(analysis) tgen_viz.add_dataset(analyses, "test") tgen_viz._TGenVisualization__extract_data_frame(onion=False, public=False) circuit_id = "181935" measurements = analysis.json_db['data']['op-hk6a']['tor']['circuits'][circuit_id] assert_false(measurements['cbt_set']) assert_true(measurements['filtered_out']) fingerprints = [] for guard in measurements['current_guards']: fg = "${}~{}".format(guard['fingerprint'], guard['nickname']) fingerprints.append(fg) check = False control = ['$0C8CDE060281DDA38F69F1765049D16D9DE9320E~vulgarismagistralis', '$A96DA63E4415E776FBFCCF3DA7154C804534B6E7~3735928559', '$248A96B2A88A3EAB14699B9096CE6ABF77D0606A~Illuminati'] check_ctl = False for fs in tgen_viz.data["fingerprints"]: if fs == fingerprints: check = True if fs == control: check_ctl = True assert_false(check) assert_true(check_ctl)