44
55from apps .ifc_validation_models .models import ValidationRequest , ValidationTask # TODO: for now needs to be absolute!
66from apps .ifc_validation_models .models import Company , AuthoringTool , Model
7+ from apps .ifc_validation_models .models import UserAdditionalInfo
78from apps .ifc_validation_models .models import set_user_context
89
910class ValidationModelsTestCase (TestCase ):
@@ -267,7 +268,7 @@ def test_add_tool_twice_should_fail(self):
267268 def test_add_tool_with_company_twice_should_fail (self ):
268269
269270 # arrange
270- ValidationModelsTestCase .set_user_context ()
271+ ValidationModelsTestCase .set_user_context ()
271272
272273 # act/assert
273274 company , _ = Company .objects .get_or_create (name = 'Acme Inc.' )
@@ -333,3 +334,101 @@ def test_task_can_navigate_back_to_model(self):
333334 # assert
334335 self .assertIsNotNone (retrieved_task )
335336 self .assertEqual (model .id , model_id )
337+
338+ def test_find_users_by_email_pattern_should_succeed (self ):
339+
340+ # arrange
341+ ValidationModelsTestCase .set_user_context ()
342+ company = Company .objects .create (name = 'Acme Inc.' , email_address_pattern = '@acme.com' )
343+ user1 = User .
objects .
create (
id = 2 ,
username = 'JohnDoe' ,
email = '[email protected] ' ,
is_active = True )
344+ user2 = User .
objects .
create (
id = 3 ,
username = 'JaneDoe' ,
email = '[email protected] ' ,
is_active = True )
345+
346+ # act
347+ users = company .find_users_by_email_pattern ()
348+
349+ # assert
350+ self .assertIsNotNone (users )
351+ self .assertEqual (1 , len (users ))
352+ self .assertEqual (user1 , users [0 ])
353+
354+ def test_find_users_by_email_pattern_should_succeed2 (self ):
355+
356+ # arrange
357+ ValidationModelsTestCase .set_user_context ()
358+ company = Company .objects .create (name = 'Acme Inc.' , email_address_pattern = '@acme.com' )
359+ user1 = User .
objects .
create (
id = 2 ,
username = 'JohnDoe' ,
email = '[email protected] ' ,
is_active = True )
360+ uai1 = UserAdditionalInfo .objects .create (user = user1 , company = company )
361+ user2 = User .
objects .
create (
id = 3 ,
username = 'JaneDoe' ,
email = '[email protected] ' ,
is_active = True )
362+
363+ # act
364+ users = company .find_users_by_email_pattern (only_new = True )
365+
366+ # assert
367+ self .assertIsNotNone (users )
368+ self .assertEqual (1 , len (users ))
369+ self .assertEqual (user2 , users [0 ])
370+
371+ def test_find_users_by_email_pattern_should_return_none (self ):
372+
373+ # arrange
374+ ValidationModelsTestCase .set_user_context ()
375+ company = Company .objects .create (name = 'Acme Inc.' , email_address_pattern = '@acme.com' )
376+ user1 = User .
objects .
create (
id = 2 ,
username = 'JohnDoe' ,
email = '[email protected] ' ,
is_active = True )
377+ user2 = User .
objects .
create (
id = 3 ,
username = 'JaneDoe' ,
email = '[email protected] ' ,
is_active = True )
378+
379+ # act
380+ users = company .find_users_by_email_pattern ()
381+
382+ # assert
383+ self .assertIsNone (users )
384+
385+ def test_find_company_by_email_pattern_should_succeed (self ):
386+
387+ # arrange
388+ ValidationModelsTestCase .set_user_context ()
389+ company = Company .objects .create (name = 'Acme Inc.' , email_address_pattern = '@acme.com|@looneytunes.com' )
390+ user1 = User .
objects .
create (
id = 2 ,
username = 'JohnDoe' ,
email = '[email protected] ' ,
is_active = True )
391+ user2 = User .
objects .
create (
id = 3 ,
username = 'JaneDoe' ,
email = '[email protected] ' ,
is_active = True )
392+
393+ # act
394+ company1 = UserAdditionalInfo .find_company_by_email_pattern (user1 )
395+ company2 = UserAdditionalInfo .find_company_by_email_pattern (user2 )
396+
397+ # assert
398+ self .assertIsNotNone (company1 )
399+ self .assertIsNotNone (company2 )
400+ self .assertEqual (company , company1 )
401+ self .assertEqual (company , company2 )
402+
403+ def test_find_company_by_email_pattern_should_succeed2 (self ):
404+
405+ # arrange
406+ ValidationModelsTestCase .set_user_context ()
407+ company = Company .objects .create (name = 'Acme Inc.' , email_address_pattern = '@acme.com' )
408+ user1 = User .
objects .
create (
id = 2 ,
username = 'JohnDoe' ,
email = '[email protected] ' ,
is_active = True )
409+ user2 = User .
objects .
create (
id = 3 ,
username = 'JaneDoe' ,
email = '[email protected] ' ,
is_active = True )
410+
411+ # act
412+ company1 = UserAdditionalInfo .find_company_by_email_pattern (user1 )
413+ company2 = UserAdditionalInfo .find_company_by_email_pattern (user2 )
414+
415+ # assert
416+ self .assertIsNotNone (company1 )
417+ self .assertIsNone (company2 )
418+ self .assertEqual (company , company1 )
419+
420+ def test_find_company_by_email_pattern_should_return_none (self ):
421+
422+ # arrange
423+ ValidationModelsTestCase .set_user_context ()
424+ company = Company .objects .create (name = 'Acme Inc.' , email_address_pattern = '@acme.com' )
425+ user1 = User .
objects .
create (
id = 2 ,
username = 'JohnDoe' ,
email = '[email protected] ' ,
is_active = True )
426+ user2 = User .
objects .
create (
id = 3 ,
username = 'JaneDoe' ,
email = '[email protected] ' ,
is_active = True )
427+
428+ # act
429+ company1 = UserAdditionalInfo .find_company_by_email_pattern (user1 )
430+ company2 = UserAdditionalInfo .find_company_by_email_pattern (user2 )
431+
432+ # assert
433+ self .assertIsNone (company1 )
434+ self .assertIsNone (company2 )
0 commit comments