1- import itertools
2-
31import pytest
42
5- from uvdat .core .models .networks import Network , NetworkNode
6- from uvdat .core .models .project import Dataset , Project
3+ from uvdat .core .models .project import Dataset
74
85
96@pytest .mark .django_db
@@ -22,74 +19,6 @@ def test_rest_dataset_list_retrieve(authenticated_api_client, dataset: Dataset):
2219 assert resp .json ()['id' ] == dataset .id
2320
2421
25- @pytest .mark .django_db
26- def test_rest_dataset_gcc_no_networks (authenticated_api_client , dataset : Dataset , project : Project ):
27- project .datasets .add (dataset )
28- resp = authenticated_api_client .get (
29- f'/api/v1/datasets/{ dataset .id } /gcc/?project={ project .id } &exclude_nodes=1'
30- )
31- assert resp .status_code == 400
32-
33-
34- @pytest .mark .django_db
35- def test_rest_dataset_gcc_empty_network (
36- authenticated_api_client , project : Project , network : Network
37- ):
38- dataset = network .vector_data .dataset
39- project .datasets .add (dataset )
40- resp = authenticated_api_client .get (
41- f'/api/v1/datasets/{ dataset .id } /gcc/?project={ project .id } &exclude_nodes=1'
42- )
43-
44- assert resp .status_code == 200
45- assert resp .json () == []
46-
47-
48- @pytest .mark .parametrize ('group_sizes' , [(3 , 2 ), (20 , 3 )])
49- @pytest .mark .django_db
50- def test_rest_dataset_gcc (
51- authenticated_api_client ,
52- project : Project ,
53- network : Network ,
54- network_edge_factory ,
55- network_node_factory ,
56- group_sizes ,
57- ):
58- group_a_size , group_b_size = group_sizes
59-
60- # Create two groups of nodes that fully connected
61- group_a = [network_node_factory (network = network ) for _ in range (group_a_size )]
62- for from_node , to_node in itertools .combinations (group_a , 2 ):
63- network_edge_factory (network = network , from_node = from_node , to_node = to_node )
64-
65- group_b = [network_node_factory (network = network ) for _ in range (group_b_size )]
66- for from_node , to_node in itertools .combinations (group_b , 2 ):
67- network_edge_factory (network = network , from_node = from_node , to_node = to_node )
68-
69- # Join these two groups by a single node
70- connecting_node : NetworkNode = network_node_factory (network = network )
71- network_edge_factory (network = network , from_node = group_a [0 ], to_node = connecting_node )
72- network_edge_factory (network = network , from_node = group_b [0 ], to_node = connecting_node )
73-
74- # Network should look like this
75- # * *
76- # | |
77- # * ---- * ---- *
78- # |
79- # *
80-
81- dataset = network .vector_data .dataset
82- project .datasets .add (dataset )
83- resp = authenticated_api_client .get (
84- f'/api/v1/datasets/{ dataset .id } /gcc/'
85- f'?project={ project .id } &exclude_nodes={ connecting_node .id } '
86- )
87-
88- larger_group : list [NetworkNode ] = max (group_a , group_b , key = len )
89- assert resp .status_code == 200
90- assert sorted (resp .json ()) == sorted ([n .id for n in larger_group ])
91-
92-
9322@pytest .mark .django_db
9423def test_rest_dataset_layers (
9524 authenticated_api_client ,
@@ -131,27 +60,3 @@ def test_rest_dataset_data_objects(
13160 print (data )
13261 # Assert these lists are the same objects
13362 assert sorted ([x ['id' ] for x in data ]) == sorted ([x .id for x in data_objects ])
134-
135-
136- @pytest .mark .django_db
137- def test_rest_dataset_network_no_network (authenticated_api_client , dataset : Dataset ):
138- resp = authenticated_api_client .get (f'/api/v1/datasets/{ dataset .id } /network/' )
139- assert resp .status_code == 200
140- assert not resp .json ()
141-
142-
143- @pytest .mark .django_db
144- def test_rest_dataset_network (authenticated_api_client , network_edge ):
145- network = network_edge .network
146- dataset = network .vector_data .dataset
147- assert network_edge .from_node != network_edge .to_node
148-
149- resp = authenticated_api_client .get (f'/api/v1/datasets/{ dataset .id } /network/' )
150- assert resp .status_code == 200
151-
152- data : list [dict ] = resp .json ()
153- assert len (data ) == 1
154-
155- data : dict = data [0 ]
156- assert len (data ['nodes' ]) == 2
157- assert len (data ['edges' ]) == 1
0 commit comments