Beispiel #1
0
 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()
Beispiel #2
0
    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')
Beispiel #3
0
    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")
Beispiel #4
0
    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()")
Beispiel #5
0
    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().")
Beispiel #6
0
    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())
Beispiel #7
0
    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)
Beispiel #8
0
    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.")
Beispiel #9
0
    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)
Beispiel #10
0
    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.")
Beispiel #11
0
    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.")
Beispiel #12
0
    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'])
Beispiel #13
0
    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.")
Beispiel #14
0
    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")
Beispiel #15
0
    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.')
Beispiel #18
0
    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)
Beispiel #19
0
    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 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.")
Beispiel #22
0
 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()
Beispiel #23
0
    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.")
Beispiel #24
0
    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)
Beispiel #25
0
    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"
        )
Beispiel #26
0
 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
Beispiel #27
0
 def get_collection_string(self) -> str:
     return User.get_collection_string()
Beispiel #28
0
 def get_collection_string(self) -> str:
     return User.get_collection_string()
Beispiel #29
0
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)
Beispiel #30
0
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)