Skip to content

Commit a64c539

Browse files
committed
Add dump/load unit tests to CI
1 parent c9709ce commit a64c539

1 file changed

Lines changed: 41 additions & 0 deletions

File tree

tests/unit.py

Lines changed: 41 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -2,6 +2,12 @@
22
from apotheosis import Apotheosis
33
from datalayer.hash_algorithm.tlsh_algorithm import TLSHHashAlgorithm
44
from datalayer.node.hash_node import HashNode
5+
from datalayer.node.winpage_hash_node import WinPageHashNode
6+
from unittest.mock import patch
7+
from datalayer.db_manager import DBManager
8+
9+
10+
511

612
APOTHEOSIS_HOST = "localhost:5000"
713
HASHES = [
@@ -72,5 +78,40 @@ def test_deletion(self):
7278

7379
self.assertEqual(actual_founds, expected_founds)
7480

81+
82+
def mock_get_winmodule_data_by_hash(self, algorithm, hash_value):
83+
"""Mock function for get_winmodule_data_by_hash"""
84+
return WinPageHashNode(hash_value, algorithm)
85+
86+
def test_dump_load(self):
87+
self.apo_model = Apotheosis(
88+
M=4, ef=4, Mmax=8, Mmax0=16,
89+
heuristic=False, extend_candidates=False,
90+
keep_pruned_conns=False, beer_factor=False,
91+
distance_algorithm=TLSHHashAlgorithm
92+
)
93+
94+
hash1 = "T10381E956C26225F2DAD9D5C2C5C1A337FAF3708A25012B8A1EACDAC00B37D557E0E714"
95+
hash2 = "T1458197A3C292D1EC8566C6A2C6516377FA743E0F8120BA49CFD1CF812B66B60D75E316"
96+
97+
node1 = WinPageHashNode(hash1, TLSHHashAlgorithm)
98+
node2 = WinPageHashNode(hash2, TLSHHashAlgorithm)
99+
100+
# Using self to reference the mock function
101+
with patch.object(DBManager, 'connect', return_value=None), \
102+
patch.object(DBManager, 'get_winmodule_data_by_hash', side_effect=self.mock_get_winmodule_data_by_hash) as mock_method:
103+
self.apo_model.insert(node1)
104+
self.apo_model.insert(node2)
105+
106+
self.apo_model.dump("TestApo", compress=False)
107+
self.apo_model.load('TestApo', TLSHHashAlgorithm, WinPageHashNode)
108+
109+
_, exact1, _ = self.apo_model.knn_search(HashNode(hash1, TLSHHashAlgorithm), k=1, ef=4)
110+
_, exact2, _ = self.apo_model.knn_search(HashNode(hash2, TLSHHashAlgorithm), k=1, ef=4)
111+
112+
self.assertEqual(exact1.get_id(), hash1)
113+
self.assertEqual(exact2.get_id(), hash2)
114+
115+
75116
if __name__ == '__main__':
76117
unittest.main()

0 commit comments

Comments
 (0)