@@ -14,65 +14,35 @@ def __init__(self):
1414 self .subject = schema .Subject ()
1515 self .lang = schema .Language ()
1616
17- def test_behavior_inheritance (self ):
18- """Testing behavior property of Fetch objects"""
19- mock = {}
20-
21- f1 = Fetch (mock )
22- assert_in ('squeeze' , f1 .ext_behavior )
23-
24- f2 = Fetch1 (mock )
25- assert_in ('squeeze' , f2 .ext_behavior )
26-
27- def test_copy_constructor (self ):
28- """Test copy constructor for Fetch and Fetch1"""
29- mock = {}
30-
31- f1 = Fetch (mock ).squeeze
32- f1 .limit (1 )
33- f2 = Fetch (f1 )
34- assert_true (isinstance (f2 , Fetch ), 'Copy constructor is not returning correct object type' )
35- assert_dict_equal (f1 .sql_behavior , f2 .sql_behavior , 'SQL behavior dictionary content is not copied correctly' )
36- assert_dict_equal (f1 .ext_behavior , f2 .ext_behavior , 'Extra behavior dictionary content is not copied correctly' )
37- assert_true (f1 ._relation is f2 ._relation , 'Relation reference is not copied correctly' )
38-
39- f3 = Fetch1 (mock ).squeeze
40- f4 = Fetch1 (f3 )
41- assert_true (isinstance (f4 , Fetch1 ), 'Copy constructor is not returning correct object type' )
42- assert_dict_equal (f3 .sql_behavior , f4 .sql_behavior , 'Behavior dictionary content is not copied correctly' )
43- assert_dict_equal (f3 .ext_behavior , f4 .ext_behavior , 'Extra behavior dictionary content is not copied correctly' )
44-
45- assert_true (f3 ._relation is f4 ._relation , 'Relation reference is not copied correctly' )
46-
47- def test_getitem (self ):
48- """Testing Fetch.__getitem__"""
49- list1 = sorted (self .subject .proj ().fetch .as_dict (), key = itemgetter ('subject_id' ))
50- list2 = sorted (self .subject .fetch [dj .key ], key = itemgetter ('subject_id' ))
17+ def test_getattribute (self ):
18+ """Testing Fetch.__call__ with attributes"""
19+ list1 = sorted (self .subject .proj ().fetch (as_dict = True ), key = itemgetter ('subject_id' ))
20+ list2 = sorted (self .subject .fetch (dj .key ), key = itemgetter ('subject_id' ))
5121 for l1 , l2 in zip (list1 , list2 ):
52- assert_dict_equal (l1 , l2 , 'Primary key is not returned correctly' )
22+ assert_dict_equal (l1 , l2 , 'Primary key is not returned correctly' )
5323
54- tmp = self .subject .fetch (order_by = [ 'subject_id' ] )
24+ tmp = self .subject .fetch (order_by = 'subject_id' )
5525
56- subject_notes , key , real_id = self .subject .fetch [ 'subject_notes' , dj .key , 'real_id' ]
26+ subject_notes , key , real_id = self .subject .fetch ( 'subject_notes' , dj .key , 'real_id' )
5727
5828 np .testing .assert_array_equal (sorted (subject_notes ), sorted (tmp ['subject_notes' ]))
5929 np .testing .assert_array_equal (sorted (real_id ), sorted (tmp ['real_id' ]))
6030 list1 = sorted (key , key = itemgetter ('subject_id' ))
6131 for l1 , l2 in zip (list1 , list2 ):
62- assert_dict_equal (l1 , l2 , 'Primary key is not returned correctly' )
32+ assert_dict_equal (l1 , l2 , 'Primary key is not returned correctly' )
6333
64- def test_getitem_for_fetch1 (self ):
65- """Testing Fetch1.__getitem__ """
66- assert_true ((self .subject & "subject_id=10" ).fetch1 [ 'subject_id' ] == 10 )
67- assert_equal ((self .subject & "subject_id=10" ).fetch1 [ 'subject_id' , 'species' ] ,
34+ def test_getattribute_for_fetch1 (self ):
35+ """Testing Fetch1.__call__ with attributes """
36+ assert_true ((self .subject & "subject_id=10" ).fetch1 ( 'subject_id' ) == 10 )
37+ assert_equal ((self .subject & "subject_id=10" ).fetch1 ( 'subject_id' , 'species' ) ,
6838 (10 , 'monkey' ))
6939
7040 def test_order_by (self ):
7141 """Tests order_by sorting order"""
7242 languages = schema .Language .contents
7343
7444 for ord_name , ord_lang in itertools .product (* 2 * [['ASC' , 'DESC' ]]):
75- cur = self .lang .fetch . order_by ('name ' + ord_name , 'language ' + ord_lang )( )
45+ cur = self .lang .fetch ( order_by = ('name ' + ord_name , 'language ' + ord_lang ))
7646 languages .sort (key = itemgetter (1 ), reverse = ord_lang == 'DESC' )
7747 languages .sort (key = itemgetter (0 ), reverse = ord_name == 'DESC' )
7848 for c , l in zip (cur , languages ):
@@ -84,35 +54,34 @@ def test_squeeze(self):
8454 def test_order_by_default (self ):
8555 """Tests order_by sorting order with defaults"""
8656 languages = schema .Language .contents
87- cur = self .lang .fetch . order_by ('language' , 'name DESC' )( )
57+ cur = self .lang .fetch ( order_by = ('language' , 'name DESC' ))
8858 languages .sort (key = itemgetter (0 ), reverse = True )
8959 languages .sort (key = itemgetter (1 ), reverse = False )
9060
9161 for c , l in zip (cur , languages ):
9262 assert_true (np .all ([cc == ll for cc , ll in zip (c , l )]), 'Sorting order is different' )
9363
94- def test_order_by_direct (self ):
95- """Tests order_by sorting order passing it to __call__ """
64+ def test_limit (self ):
65+ """Test the limit kwarg """
9666 languages = schema .Language .contents
97- cur = self .lang .fetch (order_by = ['language' , 'name DESC' ])
98- languages .sort (key = itemgetter (0 ), reverse = True )
99- languages .sort (key = itemgetter (1 ), reverse = False )
100- for c , l in zip (cur , languages ):
101- assert_true (np .all ([cc == ll for cc , ll in zip (c , l )]), 'Sorting order is different' )
10267
103- def test_limit (self ):
104- """Test the limit function """
68+ cur = self .lang .fetch (limit = 4 )
69+ assert_equal (len (cur ), 4 , 'Length is not correct' )
70+
71+ def test_order_by_limit (self ):
72+ """Test the combination of order by and limit kwargs"""
10573 languages = schema .Language .contents
10674
107- cur = self .lang .fetch . limit ( 4 )( order_by = ['language' , 'name DESC' ])
75+ cur = self .lang .fetch ( limit = 4 , order_by = ['language' , 'name DESC' ])
10876 languages .sort (key = itemgetter (0 ), reverse = True )
10977 languages .sort (key = itemgetter (1 ), reverse = False )
11078 assert_equal (len (cur ), 4 , 'Length is not correct' )
11179 for c , l in list (zip (cur , languages ))[:4 ]:
11280 assert_true (np .all ([cc == ll for cc , ll in zip (c , l )]), 'Sorting order is different' )
11381
82+
11483 def test_limit_offset (self ):
115- """Test the limit and offset functions together"""
84+ """Test the limit and offset kwargs together"""
11685 languages = schema .Language .contents
11786
11887 cur = self .lang .fetch (offset = 2 , limit = 4 , order_by = ['language' , 'name DESC' ])
@@ -125,7 +94,7 @@ def test_limit_offset(self):
12594 def test_iter (self ):
12695 """Test iterator"""
12796 languages = schema .Language .contents
128- cur = self .lang .fetch . order_by ( 'language' , 'name DESC' )
97+ cur = self .lang .fetch ( order_by = [ 'language' , 'name DESC' ] )
12998 languages .sort (key = itemgetter (0 ), reverse = True )
13099 languages .sort (key = itemgetter (1 ), reverse = False )
131100 for (name , lang ), (tname , tlang ) in list (zip (cur , languages )):
@@ -141,8 +110,8 @@ def test_keys(self):
141110 languages .sort (key = itemgetter (0 ), reverse = True )
142111 languages .sort (key = itemgetter (1 ), reverse = False )
143112
144- cur = self .lang .fetch . order_by ( 'language ' , 'name DESC' )[ 'name' , 'language' ]
145- cur2 = list (self .lang .fetch .order_by ( 'language' , 'name DESC' ). keys ( ))
113+ cur = self .lang .fetch ( 'name ' , 'language' , order_by = ( 'language' , 'name DESC' ))
114+ cur2 = list (self .lang .fetch .keys ( order_by = [ 'language' , 'name DESC' ] ))
146115
147116 for c , c2 in zip (zip (* cur ), cur2 ):
148117 assert_true (c == tuple (c2 .values ()), 'Values are not the same' )
@@ -152,7 +121,7 @@ def test_fetch1_step1(self):
152121 true = schema .Language .contents [- 1 ]
153122 dat = (self .lang & key ).fetch1 ()
154123 for k , (ke , c ) in zip (true , dat .items ()):
155- assert_true (k == c == (self .lang & key ).fetch1 [ ke ] ,
124+ assert_true (k == c == (self .lang & key ).fetch1 ( ke ) ,
156125 'Values are not the same' )
157126
158127 def test_repr (self ):
@@ -164,25 +133,21 @@ def test_repr(self):
164133 assert_true (n - 3 <= limit )
165134
166135 @raises (dj .DataJointError )
167- def test_prepare_attributes (self ):
136+ def test_fetch_none (self ):
168137 """Test preparing attributes for getitem"""
169- self .lang .fetch [ None ]
138+ self .lang .fetch ( None )
170139
171140 def test_asdict (self ):
172141 """Test returns as dictionaries"""
173- d = self .lang .fetch .as_dict ()
174- for dd in d :
175- assert_true (isinstance (dd , dict ))
176-
177- def test_asdict_with_call (self ):
178- """Test returns as dictionaries with call."""
179- d = self .lang .fetch .as_dict ()
142+ d = self .lang .fetch (as_dict = True )
180143 for dd in d :
181144 assert_true (isinstance (dd , dict ))
182145
183146 def test_offset (self ):
184147 """Tests offset"""
185- cur = self .lang .fetch .limit (4 ).offset (1 )(order_by = ['language' , 'name DESC' ])
148+ with warnings .catch_warnings (record = True ) as w :
149+ cur = self .lang .fetch (limit = 4 , offset = 1 , order_by = ['language' , 'name DESC' ])
150+
186151 languages = self .lang .contents
187152 languages .sort (key = itemgetter (0 ), reverse = True )
188153 languages .sort (key = itemgetter (1 ), reverse = False )
@@ -193,8 +158,8 @@ def test_offset(self):
193158 def test_limit_warning (self ):
194159 """Tests whether warning is raised if offset is used without limit."""
195160 with warnings .catch_warnings (record = True ) as w :
196- self .lang .fetch . offset ( 1 )( )
197- assert_true (len (w ) > 0 , "Warning war not raised" )
161+ self .lang .fetch ( offset = 1 )
162+ assert_true (len (w ) > 0 , "Warning was not raised" )
198163
199164 def test_len (self ):
200165 """Tests __len__"""
@@ -208,4 +173,4 @@ def test_fetch1_step2(self):
208173 @raises (dj .DataJointError )
209174 def test_fetch1_step3 (self ):
210175 """Tests whether fetch1 raises error"""
211- self .lang .fetch1 [ 'name' ]
176+ self .lang .fetch1 ( 'name' )
0 commit comments