4
4
5
5
from apps .ifc_validation_models .models import ValidationRequest , ValidationTask # TODO: for now needs to be absolute!
6
6
from apps .ifc_validation_models .models import Company , AuthoringTool , Model
7
+ from apps .ifc_validation_models .models import UserAdditionalInfo
7
8
from apps .ifc_validation_models .models import set_user_context
8
9
9
10
class ValidationModelsTestCase (TestCase ):
@@ -267,7 +268,7 @@ def test_add_tool_twice_should_fail(self):
267
268
def test_add_tool_with_company_twice_should_fail (self ):
268
269
269
270
# arrange
270
- ValidationModelsTestCase .set_user_context ()
271
+ ValidationModelsTestCase .set_user_context ()
271
272
272
273
# act/assert
273
274
company , _ = Company .objects .get_or_create (name = 'Acme Inc.' )
@@ -333,3 +334,101 @@ def test_task_can_navigate_back_to_model(self):
333
334
# assert
334
335
self .assertIsNotNone (retrieved_task )
335
336
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