@@ -36,6 +36,46 @@ def test_exact_without_0x_hex_search(api_client, factories):
3636 assert result ['id' ] == s2 .id
3737
3838
39+ def test_multiple_exact_hex_search (api_client , factories ):
40+ list_url = reverse ('api:signature-list' )
41+ s1 , s2 , s3 , s4 , s5 = factories .SignatureFactory .create_batch (5 )
42+
43+ search_url = list_url + '?hex_signature__in={0},{1},{2}' .format (
44+ s2 .bytes_signature .get_hex_display (),
45+ s4 .bytes_signature .get_hex_display (),
46+ s5 .bytes_signature .get_hex_display (),
47+ )
48+ response = api_client .get (search_url )
49+
50+ assert response .status_code == status .HTTP_200_OK
51+ data = response .data
52+ assert data ['count' ] == 3
53+ actual_results = sorted ([item ['id' ] for item in data ['results' ]])
54+ assert len (actual_results ) == 3
55+ expected_results = sorted ([s2 .id , s4 .id , s5 .id ])
56+ assert actual_results == expected_results
57+
58+
59+ def test_multiple_exact_without_0x_hex_search (api_client , factories ):
60+ list_url = reverse ('api:signature-list' )
61+ s1 , s2 , s3 , s4 , s5 = factories .SignatureFactory .create_batch (5 )
62+
63+ search_url = list_url + '?hex_signature__in={0},{1},{2}' .format (
64+ s1 .bytes_signature .get_hex_display ()[2 :],
65+ s3 .bytes_signature .get_hex_display ()[2 :],
66+ s4 .bytes_signature .get_hex_display ()[2 :],
67+ )
68+ response = api_client .get (search_url )
69+
70+ assert response .status_code == status .HTTP_200_OK
71+ data = response .data
72+ assert data ['count' ] == 3
73+ actual_results = sorted ([item ['id' ] for item in data ['results' ]])
74+ assert len (actual_results ) == 3
75+ expected_results = sorted ([s1 .id , s3 .id , s4 .id ])
76+ assert actual_results == expected_results
77+
78+
3979def test_substring_hex_search_with_0x (api_client , factories ):
4080 list_url = reverse ('api:signature-list' )
4181 s1 , s2 , s3 , s4 , s5 = factories .SignatureFactory .create_batch (5 )
0 commit comments