def setUp(self): self.user1 = User() self.user1.first_name = 'Max' self.user1.last_name = 'Mustermann' self.user1.username = gen_username(self.user1.first_name, self.user1.last_name) self.user1.default_password = gen_password() self.user1.save()
def test_reset_password_with_attribute(self): """ Tests reset_password with no attribute. """ user = User(default_password='******') user.set_password = MagicMock() user.reset_password('test_password') user.set_password.assert_called_once_with('test_password')
def test_get_slide_context(self): """ Tests, that get_slide_context returns: {'shown_user': self} """ user = User() self.assertEqual(user.get_slide_context(), {'shown_user': user}, "User.get_slide_context returns a wrong context")
def test_str(self): """ Tests, that the str representaion of a User object returns the same as User.get_full_name(). """ user = User() user.get_full_name = MagicMock(return_value='Test Value') self.assertEqual( str(user), 'Test Value', "The str representation of User is not user.get_full_name()")
def test_str(self): """ Tests, that the str representaion of a User object returns the same as User.get_full_name(). """ user = User() user.get_full_name = MagicMock(return_value='Test Value IJee1yoet1ooGhesh5li') self.assertEqual( str(user), 'Test Value IJee1yoet1ooGhesh5li', "The str representation of User is not user.get_full_name().")
def test_bulk_delete(self): # create 10 users: ids = [] for i in range(10): user = User(username=f"user_{i}") user.save() ids.append(user.id) response = self.admin_client.post(reverse("user-bulk-delete"), {"user_ids": ids}) self.assertEqual(response.status_code, status.HTTP_204_NO_CONTENT) self.assertFalse(User.objects.filter(pk__in=ids).exists())
def test_logged_in_user_with_no_permission(self): """ Test to get the groups with an logged in user with no permissions. """ user = User(username='******') user.set_password('test') user.save() registered_group = Group.objects.get(pk=2) registered_group.permissions.all().delete() self.client.login(username='******', password='******') response = self.client.get('/rest/users/group/') self.assertEqual(response.status_code, 200)
def test_get_short_name_no_names(self): """ Tests the output of get_short_name. """ user = User(username='******') with patch('openslides.users.models.config') as mock_config: mock_config.__getitem__.return_value = False short_name = user.get_short_name() self.assertEqual( short_name, 'test_username', "User.get_short_name() returns wrong string when it has no fist_name " "and no last_name and is sorted by last_name.")
def test_logged_in_user_with_no_permission(self): """ Test to get the groups with an logged in user with no permissions. """ user = User(username="******") user.set_password("test") user.save() default_group = Group.objects.get(pk=1) default_group.permissions.all().delete() self.client.login(username="******", password="******") response = self.client.get("/rest/users/group/") self.assertEqual(response.status_code, 200)
def test_get_full_name_without_structure_level_and_without_title(self): """ Tests that get_full_name returns the write string. """ user = User() user.title = '' user.structure_level = '' user.get_short_name = MagicMock(return_value='test_short_name') self.assertEqual( user.get_full_name(), 'test_short_name', "User.get_full_name() returns wrong string when it has no " "structure_level and no title.")
def test_get_absolute_url_delete(self): """ Tests get_absolute_url() with 'delete' as argument """ user = User(pk=5) with patch('openslides.users.models.reverse') as mock_reverse: mock_reverse.return_value = 'test url' url = user.get_absolute_url('delete') self.assertEqual( url, 'test url', "User.get_absolute_url('delete') does not return the result of reverse" ) mock_reverse.assert_called_once_with('user_delete', args=['5'])
def test_get_short_name_sort_first_name_only_first_name(self): """ Tests the output of get_short_name. """ user = User() user.first_name = 'test_first_name' with patch('openslides.users.models.config') as mock_config: mock_config.__getitem__.return_value = True short_name = user.get_short_name() self.assertEqual( short_name, 'test_first_name', "User.get_short_name() returns wrong string when it has only a " "first_name and is sorted by first_name.")
def test_get_short_name_sort_last_name_both_names(self): """ Tests the output of get_short_name. """ user = User() user.first_name = 'test_first_name' user.last_name = 'test_last_name' with patch('openslides.users.models.config') as mock_config: mock_config.__getitem__.return_value = False short_name = user.get_short_name() self.assertEqual( short_name, 'test_last_name, test_first_name', "User.get_short_name() returns wrong string when it has a fist_name " "and a last_name and is sorted by last_name")
def test_get_absolute_url_default(self): """ Tests get_absolute_url() with no argument. It should return the url for the url-pattern of user_detail """ user = User(pk=5) with patch('openslides.users.models.reverse') as mock_reverse: mock_reverse.return_value = 'test url' url = user.get_absolute_url() self.assertEqual( url, 'test url', "User.get_absolute_url() does not return the result of reverse") mock_reverse.assert_called_once_with('user_detail', args=['5'])
def create_staff_users(self, options): if options['users'] is None and not options['only']: staff_users: Optional[int] = DEFAULT_NUMBER elif options['users'] is None: staff_users = None else: staff_users = options['users'][0] if staff_users is not None and staff_users > 0: self.stdout.write('Start creating {} staff users ...'.format(staff_users)) group_staff = Group.objects.get(name='Staff') hashed_password = make_password(PASSWORD) current_users = list(User.objects.values_list('id', flat=True)) new_users = [] for i in range(staff_users): new_users.append(User( username=STAFF_USER_USERNAME.format(i), default_password=PASSWORD, password=hashed_password )) try: User.objects.bulk_create(new_users) except IntegrityError: self.stdout.write('FAILED: The requested staff users to create are already existing...') else: for user in User.objects.exclude(pk__in=current_users): user.groups.add(group_staff) self.stdout.write(self.style.SUCCESS('{} staff users successfully created.'.format(staff_users))) elif staff_users is not None and staff_users < 0: raise CommandError('Number for staff users must not be negative.')
def create_default_users(self, options): if options['users'] is None and not options['only']: default_users = DEFAULT_NUMBER elif options['users'] is None: default_users = None else: default_users = options['users'][1] if default_users is not None and default_users > 0: self.stdout.write( 'Start creating {} default users ...'.format(default_users)) hashed_password = make_password(PASSWORD, '', 'md5') new_users = [] for i in range(default_users): new_users.append( User(username=DEFAULT_USER_USERNAME.format(i), default_password=PASSWORD, password=hashed_password)) User.objects.bulk_create(new_users) self.stdout.write( self.style.SUCCESS( '{} default users successfully created.'.format( default_users))) elif default_users is not None and default_users < 0: raise CommandError( 'Number for default users must not be negative.')
def test_get_absolute_url_other(self): """ Tests get_absolute_url() with any other argument """ user = User(pk=5) dummy_argument = MagicMock() with patch('builtins.super') as mock_super: mock_super().get_absolute_url.return_value = 'test url' url = user.get_absolute_url(dummy_argument) self.assertEqual( url, 'test url', "User.get_absolute_url(OTHER) does not return the result of reverse" ) mock_super().get_absolute_url.assert_called_once_with(dummy_argument)
def create_default_users(self, options): if options['users'] is None and not options['only']: default_users: Optional[int] = DEFAULT_NUMBER elif options['users'] is None: default_users = None else: default_users = options['users'][1] if default_users is not None and default_users > 0: self.stdout.write('Start creating {} default users ...'.format(default_users)) hashed_password = make_password(PASSWORD) new_users = [] for i in range(default_users): new_users.append(User( username=DEFAULT_USER_USERNAME.format(i), default_password=PASSWORD, password=hashed_password )) try: User.objects.bulk_create(new_users) except IntegrityError: self.stdout.write('FAILED: The requested staff users to create are already existing...') else: self.stdout.write(self.style.SUCCESS('{} default users successfully created.'.format(default_users))) elif default_users is not None and default_users < 0: raise CommandError('Number for default users must not be negative.')
def test_while_spaces_in_name_parts(self): """ Tests the output if the name parts have white spaces at the begin or end. """ user = User() user.first_name = ' test_first_name\n ' user.last_name = ' test_last_name \n' with patch('openslides.users.models.config') as mock_config: mock_config.__getitem__.return_value = True short_name = user.get_short_name() self.assertEqual( short_name, 'test_first_name test_last_name', "User.get_short_name() has to strip whitespaces from the name parts.")
def setUp(self): self.user1 = User() self.user1.first_name = 'Max' self.user1.last_name = 'Mustermann' self.user1.username = gen_username( self.user1.first_name, self.user1.last_name) self.user1.default_password = gen_password() self.user1.save()
def test_logged_in_user_with_no_permission(self): """ Test to get the groups with an logged in user with no permissions. """ user = User(username='******') user.set_password('test') user.save() default_group = Group.objects.get(pk=1) default_group.permissions.all().delete() self.client.login(username='******', password='******') response = self.client.get('/rest/users/group/') self.assertEqual(response.status_code, 200)
def test_get_full_name_with_structure_level_and_title(self): """ Tests, that get_full_name returns the write string. """ user = User() user.title = 'test_title' user.structure_level = 'test_structure_level' user.get_short_name = MagicMock(return_value='test_short_name') self.assertEqual( user.get_full_name(), 'test_title test_short_name (test_structure_level)', "User.get_full_name() returns wrong string when it has a structure_level and title" )
def get_collection_elements_required_for_this(self, collection_element, config_entry): if collection_element.collection_string == MotionPollBallot.get_collection_string( ): output = [collection_element] elif collection_element.collection_string == VotingController.get_collection_string( ): output = [collection_element] elif collection_element.collection_string == AuthorizedVoters.get_collection_string( ): output = [collection_element] elif collection_element.collection_string == Keypad.get_collection_string( ): output = [collection_element] elif collection_element.collection_string == User.get_collection_string( ): output = [collection_element] elif collection_element.information.get('voting_prompt'): output = [] else: output = super().get_collection_elements_required_for_this( collection_element, config_entry) return output
def get_collection_string(self) -> str: return User.get_collection_string()
class UserTest(TestCase): def setUp(self): self.user1 = User() self.user1.first_name = 'Max' self.user1.last_name = 'Mustermann' self.user1.username = gen_username(self.user1.first_name, self.user1.last_name) self.user1.default_password = gen_password() self.user1.save() def test_str(self): self.assertEqual(str(self.user1), 'Max Mustermann') def test_name_suffix(self): self.user1.structure_level = 'München' self.user1.save() self.assertEqual(str(self.user1), 'Max Mustermann (München)') def test_reset_password(self): self.assertIsInstance(self.user1.default_password, str) self.assertEqual(len(self.user1.default_password), 8) self.user1.set_unusable_password() self.assertFalse(self.user1.check_password( self.user1.default_password)) self.user1.reset_password() self.assertTrue(self.user1.check_password(self.user1.default_password)) def test_get_absolute_url(self): urls = (('detail', '/user/2/'), ('update', '/user/2/edit/'), ('delete', '/user/2/del/')) for link, url in urls: self.assertEqual(self.user1.get_absolute_url(link), url)
class UserTest(TestCase): def setUp(self): self.user1 = User() self.user1.first_name = 'Max' self.user1.last_name = 'Mustermann' self.user1.username = gen_username( self.user1.first_name, self.user1.last_name) self.user1.default_password = gen_password() self.user1.save() def test_str(self): self.assertEqual(str(self.user1), 'Max Mustermann') def test_name_suffix(self): self.user1.structure_level = 'München' self.user1.save() self.assertEqual(str(self.user1), 'Max Mustermann (München)') def test_reset_password(self): self.assertIsInstance(self.user1.default_password, str) self.assertEqual(len(self.user1.default_password), 8) self.user1.set_unusable_password() self.assertFalse(self.user1.check_password(self.user1.default_password)) self.user1.reset_password() self.assertTrue(self.user1.check_password(self.user1.default_password)) def test_get_absolute_url(self): urls = (('detail', '/user/2/'), ('update', '/user/2/edit/'), ('delete', '/user/2/del/')) for link, url in urls: self.assertEqual(self.user1.get_absolute_url(link), url)