2
2
3
3
import six
4
4
from django .core .management import call_command , CommandError
5
- from django .contrib .auth .models import Group
5
+ from django .contrib .auth .models import Group , User
6
6
7
7
from waffle import get_waffle_flag_model
8
8
from waffle .models import Sample , Switch
@@ -120,7 +120,7 @@ def test_list(self):
120
120
call_command ('waffle_flag' , list_flags = True , stdout = stdout )
121
121
expected = 'Flags:\n NAME: test\n SUPERUSERS: True\n EVERYONE: None\n ' \
122
122
'AUTHENTICATED: False\n PERCENT: None\n TESTING: False\n ' \
123
- 'ROLLOUT: False\n STAFF: False\n GROUPS: []'
123
+ 'ROLLOUT: False\n STAFF: False\n GROUPS: []\n USERS: [] '
124
124
actual = stdout .getvalue ().strip ()
125
125
self .assertEqual (actual , expected )
126
126
@@ -143,6 +143,52 @@ def test_group_append(self):
143
143
['waffle_group' , 'append_group' ])
144
144
self .assertIsNone (flag .everyone )
145
145
146
+ def test_user (self ):
147
+ """ The command should replace a user to a flag."""
148
+ original_user = User .objects .create_user ('waffle_test' )
149
+ User .objects .create_user ('add_user' )
150
+ flag = get_waffle_flag_model ().objects .create (name = 'test' )
151
+ flag .users .add (original_user )
152
+ flag .refresh_from_db ()
153
+
154
+ self .assertEqual (list (flag .users .values_list ('username' , flat = True )),
155
+ ['waffle_test' ])
156
+
157
+ call_command ('waffle_flag' , 'test' , user = ['add_user' ])
158
+
159
+ flag .refresh_from_db ()
160
+ self .assertEqual (list (flag .users .values_list ('username' , flat = True )),
161
+ ['add_user' ])
162
+ self .assertIsNone (flag .everyone )
163
+
164
+ def test_user_append (self ):
165
+ """ The command should append a user to a flag."""
166
+ original_user = User .objects .create_user ('waffle_test' )
167
+ User .objects .create_user ('append_user' )
168
+ User .
objects .
create_user (
'append_user_email' ,
email = '[email protected] ' )
169
+ flag = get_waffle_flag_model ().objects .create (name = 'test' )
170
+ flag .users .add (original_user )
171
+ flag .refresh_from_db ()
172
+
173
+ self .assertEqual (list (flag .users .values_list ('username' , flat = True )),
174
+ ['waffle_test' ])
175
+
176
+ call_command ('waffle_flag' , 'test' , user = ['append_user' ],
177
+ append = True )
178
+
179
+ flag .refresh_from_db ()
180
+ self .assertEqual (list (flag .users .values_list ('username' , flat = True )),
181
+ ['waffle_test' , 'append_user' ])
182
+ self .assertIsNone (flag .everyone )
183
+
184
+ call_command (
'waffle_flag' ,
'test' ,
user = [
'[email protected] ' ],
185
+ append = True )
186
+
187
+ flag .refresh_from_db ()
188
+ self .assertEqual (list (flag .users .values_list ('username' , flat = True )),
189
+ ['waffle_test' , 'append_user' , 'append_user_email' ])
190
+ self .assertIsNone (flag .everyone )
191
+
146
192
147
193
class WaffleSampleManagementCommandTests (TestCase ):
148
194
def test_create (self ):
0 commit comments