@@ -68,22 +68,35 @@ def testList(self, capsys, sort_key, group_format):
68
68
self .cli .invoke (self .args , strict = True )
69
69
70
70
# Read from the stdout
71
+ before = self .sf .getAdminService ().lookupExperimenters ()
71
72
out , err = capsys .readouterr ()
72
73
ids = get_user_ids (out , sort_key = sort_key )
74
+ after = self .sf .getAdminService ().lookupExperimenters ()
73
75
74
- # Check all users are listed
76
+ # Check all users are listed under the assumption that
77
+ # users won't be _deleted_ by other threads.
75
78
if sort_key == 'login' :
76
- sorted_list = sorted (self .users , key = lambda x : x .omeName .val )
79
+ sorted_before = sorted (before , key = lambda x : x .omeName .val )
80
+ sorted_after = sorted (after , key = lambda x : x .omeName .val )
77
81
elif sort_key == 'first-name' :
78
- sorted_list = sorted (self .users , key = lambda x : x .firstName .val )
82
+ sorted_before = sorted (before , key = lambda x : x .firstName .val )
83
+ sorted_after = sorted (after , key = lambda x : x .firstName .val )
79
84
elif sort_key == 'last-name' :
80
- sorted_list = sorted (self .users , key = lambda x : x .lastName .val )
85
+ sorted_before = sorted (before , key = lambda x : x .lastName .val )
86
+ sorted_after = sorted (after , key = lambda x : x .lastName .val )
81
87
elif sort_key == 'email' :
82
- sorted_list = sorted (self .users , key = lambda x : (
88
+ sorted_before = sorted (before , key = lambda x : (
89
+ x .email and x .email .val or "" ))
90
+ sorted_after = sorted (after , key = lambda x : (
83
91
x .email and x .email .val or "" ))
84
92
else :
85
- sorted_list = sorted (self .users , key = lambda x : x .id .val )
86
- assert ids == [user .id .val for user in sorted_list ]
93
+ sorted_before = sorted (before , key = lambda x : x .id .val )
94
+ sorted_after = sorted (after , key = lambda x : x .id .val )
95
+
96
+ for lhs , rhs in (([user .id .val for user in sorted_before ], ids ),
97
+ (ids , [user .id .val for user in sorted_after ])):
98
+ assert len (lhs ) <= len (rhs )
99
+ assert lhs == rhs [0 :len (lhs )]
87
100
88
101
@pytest .mark .parametrize ("style" , [None , "sql" , "csv" , "plain" , "json" ])
89
102
def testListWithStyles (self , capsys , style ):
0 commit comments