@@ -36,7 +36,8 @@ def tearDown(self):
36
36
def test_post_entry (self ):
37
37
admin = self .admin_login ()
38
38
39
- # create referred Entity and Entries
39
+ # create referred Entity, Entries and Groups
40
+ test_groups = [Group .objects .create (name = x ) for x in ['group1' , 'group2' ]]
40
41
ref_entity = Entity .objects .create (name = 'Referred Entity' , created_user = admin )
41
42
ref_e = []
42
43
for index in range (0 , 10 ):
@@ -51,6 +52,7 @@ def test_post_entry(self):
51
52
{'name' : 'bool' , 'type' : AttrTypeValue ['boolean' ]},
52
53
{'name' : 'date' , 'type' : AttrTypeValue ['date' ]},
53
54
{'name' : 'group' , 'type' : AttrTypeValue ['group' ]},
55
+ {'name' : 'groups' , 'type' : AttrTypeValue ['array_group' ]},
54
56
{'name' : 'text' , 'type' : AttrTypeValue ['text' ]},
55
57
{'name' : 'vals' , 'type' : AttrTypeValue ['array_string' ]},
56
58
{'name' : 'refs' , 'type' : AttrTypeValue ['array_object' ], 'ref' : ref_entity },
@@ -77,7 +79,8 @@ def test_post_entry(self):
77
79
'name' : {'name' : 'hoge' , 'id' : 'r-1' },
78
80
'bool' : False ,
79
81
'date' : '2018-12-31' ,
80
- 'group' : Group .objects .create (name = 'new_group' ).name ,
82
+ 'group' : 'group1' ,
83
+ 'groups' : ['group1' , 'group2' ],
81
84
'text' : 'fuga' ,
82
85
'vals' : ['foo' , 'bar' ],
83
86
'refs' : ['r-2' , 'r-3' ],
@@ -99,7 +102,7 @@ def test_post_entry(self):
99
102
100
103
new_entry = Entry .objects .get (id = ret_data ['result' ])
101
104
self .assertEqual (new_entry .name , 'entry1' )
102
- self .assertEqual (new_entry .attrs .count (), 10 )
105
+ self .assertEqual (new_entry .attrs .count (), len ( attr_params ) )
103
106
104
107
# checking new_entry is registered to the Elasticsearch
105
108
res = self ._es .get (index = settings .ES_CONFIG ['INDEX' ], doc_type = 'entry' , id = new_entry .id )
@@ -114,7 +117,10 @@ def test_post_entry(self):
114
117
{'name' : 'bool' , 'check' : lambda v : self .assertEqual (v .boolean , False )},
115
118
{'name' : 'date' , 'check' : lambda v : self .assertEqual (v .date , date (2018 , 12 , 31 ))},
116
119
{'name' : 'group' , 'check' : lambda v : self .assertEqual (
117
- v .value , str (Group .objects .get (name = 'new_group' ).id ))},
120
+ v .value , str (Group .objects .get (name = 'group1' ).id ))},
121
+ {'name' : 'groups' , 'check' : lambda v : self .assertEqual (
122
+ [x .value for x in v .data_array .all ()], [str (x .id ) for x in test_groups ]
123
+ )},
118
124
{'name' : 'text' , 'check' : lambda v : self .assertEqual (v .value , 'fuga' )},
119
125
{'name' : 'vals' , 'check' : lambda v : self .assertEqual (v .data_array .count (), 2 )},
120
126
{'name' : 'vals' , 'check' : lambda v : self .assertEqual (
@@ -148,6 +154,7 @@ def test_post_entry(self):
148
154
'ref' : '' ,
149
155
'name' : {},
150
156
'group' : '' ,
157
+ 'groups' : [],
151
158
'text' : '' ,
152
159
'vals' : [],
153
160
'refs' : [],
@@ -166,22 +173,14 @@ def test_post_entry(self):
166
173
for attr in new_entry .attrs .filter (is_active = True ):
167
174
attrv = attr .get_latest_value ()
168
175
169
- if attr .schema .name == 'val' :
176
+ if attr .schema .name in [ 'val' , 'group' , 'text' ] :
170
177
self .assertEqual (attrv .value , '' )
171
178
elif attr .schema .name == 'ref' :
172
179
self .assertIsNone (attrv .referral )
173
180
elif attr .schema .name == 'name' :
174
181
self .assertEqual (attrv .value , '' )
175
182
self .assertIsNone (attrv .referral )
176
- elif attr .schema .name == 'group' :
177
- self .assertEqual (attrv .value , '' )
178
- elif attr .schema .name == 'text' :
179
- self .assertEqual (attrv .value , '' )
180
- elif attr .schema .name == 'vals' :
181
- self .assertEqual (attrv .data_array .count (), 0 )
182
- elif attr .schema .name == 'refs' :
183
- self .assertEqual (attrv .data_array .count (), 0 )
184
- elif attr .schema .name == 'names' :
183
+ elif attr .schema .name in ['vals' , 'refs' , 'names' , 'groups' ]:
185
184
self .assertEqual (attrv .data_array .count (), 0 )
186
185
187
186
def test_edit_entry_by_api (self ):
@@ -529,6 +528,7 @@ def test_failed_to_get_entry(self):
529
528
def test_get_entry (self ):
530
529
user = self .admin_login ()
531
530
531
+ test_groups = [Group .objects .create (name = x ) for x in ['group1' , 'group2' ]]
532
532
ref_entity = Entity .objects .create (name = 'RefEntity' , created_user = user )
533
533
ref_entry = Entry .objects .create (name = 'RefEntry' , created_user = user , schema = ref_entity )
534
534
@@ -539,6 +539,8 @@ def test_get_entry(self):
539
539
'ref' : {'type' : AttrTypeValue ['object' ], 'value' : ref_entry ,
540
540
'referral' : ref_entity },
541
541
'no_str' : {'type' : AttrTypeValue ['string' ]},
542
+ 'group' : {'type' : AttrTypeValue ['group' ], 'value' : test_groups [0 ]},
543
+ 'groups' : {'type' : AttrTypeValue ['array_group' ], 'value' : test_groups },
542
544
}
543
545
for (name , info ) in attr_info .items ():
544
546
attr = EntityAttr .objects .create (name = name ,
@@ -581,7 +583,13 @@ def test_get_entry(self):
581
583
582
584
entry = Entry .objects .get (name = 'entry-0' , schema__name = 'hoge' )
583
585
self .assertEqual (results [0 ]['id' ], entry .id )
586
+
587
+ # check responded attribute informations
584
588
self .assertEqual (len (results [0 ]['attrs' ]), entry .attrs .count ())
589
+ self .assertEqual ([x for x in results [0 ]['attrs' ] if x ['name' ] == 'group' ],
590
+ [{'name' : 'group' , 'value' : 'group1' }])
591
+ self .assertEqual ([x for x in results [0 ]['attrs' ] if x ['name' ] == 'groups' ],
592
+ [{'name' : 'groups' , 'value' : ['group1' , 'group2' ]}])
585
593
586
594
# the case to specify only 'entry' parameter
587
595
resp = self .client .get ('/api/v1/entry' , {'entry' : 'entry-0' })
@@ -613,12 +621,13 @@ def test_get_entry(self):
613
621
self .assertEqual (len (results ), 1 )
614
622
self .assertEqual (results [0 ]['id' ],
615
623
Entry .objects .get (name = 'entry-1' , schema__name = 'hoge' ).id )
616
- self .assertEqual ([x ['name' ] for x in results [0 ]['attrs' ]], ['no_str' ])
624
+ self .assertEqual (sorted ([x ['name' ] for x in results [0 ]['attrs' ]]),
625
+ sorted (['no_str' , 'group' , 'groups' ]))
617
626
618
627
resp = self .client .get ('/api/v1/entry' , {'entry' : 'entry-2' })
619
628
self .assertEqual (resp .status_code , 200 )
620
629
self .assertEqual (sorted ([x ['name' ] for x in resp .json ()[0 ]['attrs' ]]),
621
- sorted (['ref' , 'no_str' ]))
630
+ sorted (['ref' , 'no_str' , 'group' , 'groups' ]))
622
631
623
632
def test_get_entry_with_only_entity_parameter (self ):
624
633
user = self .admin_login ()
0 commit comments