示例#1
0
 def test_unassigned_name(self):
     """
     Names must be assigned to a user or organization if not reserved
     """
     unassigned_name = models.AccountName(name='unassigned')
     db.session.add(unassigned_name)
     with self.assertRaises(IntegrityError):
         db.session.commit()
示例#2
0
 def test_user_two_names(self):
     """
     A user cannot have two names
     """
     assert self.fixtures.piglet.username == 'piglet'
     peppa = models.AccountName(name='peppa', user=self.fixtures.piglet)
     db.session.add(peppa)
     with self.assertRaises(IntegrityError):
         db.session.commit()
示例#3
0
 def test_double_assigned_name(self):
     """
     Names cannot be assigned to both a user and an organization simultaneously
     """
     user = models.User(fullname="User")
     org = models.Organization(title="Organization")
     name = models.AccountName(name='double-assigned', user=user, organization=org)
     db.session.add_all([user, org, name])
     with self.assertRaises(IntegrityError):
         db.session.commit()
示例#4
0
 def test_org_two_names(self):
     """
     An organization cannot have two names
     """
     assert self.fixtures.batdog.name == 'batdog'
     bathound = models.AccountName(
         name='bathound', organization=self.fixtures.batdog
     )
     db.session.add(bathound)
     with self.assertRaises(IntegrityError):
         db.session.commit()
示例#5
0
 def test_reserved_name(self):
     """
     Names can be reserved, with no user or organization
     """
     reserved_name = models.AccountName(name='reserved-name', reserved=True)
     db.session.add(reserved_name)
     db.session.commit()
     retrieved_name = models.AccountName.get('reserved-name')
     assert retrieved_name is reserved_name
     assert reserved_name.user is None
     assert reserved_name.user_id is None
     assert reserved_name.organization is None
     assert reserved_name.organization_id is None
示例#6
0
 def test_validate_name_candidate(self):
     """
     The name validator returns error codes as expected
     """
     assert models.AccountName.validate_name_candidate(None) == 'blank'
     assert models.AccountName.validate_name_candidate('') == 'blank'
     assert models.AccountName.validate_name_candidate('invalid_name') == 'invalid'
     assert models.AccountName.validate_name_candidate('0123456789' * 7) == 'long'
     assert models.AccountName.validate_name_candidate('0123456789' * 6) is None
     assert models.AccountName.validate_name_candidate('test-reserved') is None
     db.session.add(models.AccountName(name='test-reserved', reserved=True))
     db.session.commit()
     assert models.AccountName.validate_name_candidate('test-reserved') == 'reserved'
     assert models.AccountName.validate_name_candidate('piglet') == 'user'
     assert models.AccountName.validate_name_candidate('batdog') == 'org'