def test_create_user(data_fixture): plugin_mock = MagicMock() plugin_registry.registry["mock"] = plugin_mock user_handler = UserHandler() data_fixture.update_settings(allow_new_signups=False) with pytest.raises(DisabledSignupError): user_handler.create_user("Test1", "*****@*****.**", "password") assert User.objects.all().count() == 0 data_fixture.update_settings(allow_new_signups=True) user = user_handler.create_user("Test1", "*****@*****.**", "password") assert user.pk assert user.first_name == "Test1" assert user.email == "*****@*****.**" assert user.username == "*****@*****.**" assert Group.objects.all().count() == 1 group = Group.objects.all().first() assert group.users.filter(id=user.id).count() == 1 assert group.name == "Test1's group" assert Database.objects.all().count() == 1 assert Table.objects.all().count() == 2 assert GridView.objects.all().count() == 2 assert TextField.objects.all().count() == 3 assert LongTextField.objects.all().count() == 1 assert BooleanField.objects.all().count() == 2 assert DateField.objects.all().count() == 1 assert GridViewFieldOptions.objects.all().count() == 3 tables = Table.objects.all().order_by("id") model_1 = tables[0].get_model() model_1_results = model_1.objects.all() assert len(model_1_results) == 4 assert model_1_results[0].order == Decimal("1.00000000000000000000") assert model_1_results[1].order == Decimal("2.00000000000000000000") assert model_1_results[2].order == Decimal("3.00000000000000000000") assert model_1_results[3].order == Decimal("4.00000000000000000000") model_2 = tables[1].get_model() model_2_results = model_2.objects.all() assert len(model_2_results) == 3 assert model_2_results[0].order == Decimal("1.00000000000000000000") assert model_2_results[1].order == Decimal("2.00000000000000000000") assert model_2_results[2].order == Decimal("3.00000000000000000000") plugin_mock.user_created.assert_called_with(user, group, None, None) with pytest.raises(UserAlreadyExist): user_handler.create_user("Test1", "*****@*****.**", "password")
def test_first_ever_created_user_is_staff(data_fixture): user_handler = UserHandler() data_fixture.update_settings(allow_new_signups=True) first_user = user_handler.create_user('First Ever User', '*****@*****.**', 'password') assert first_user.first_name == 'First Ever User' assert first_user.is_staff second_user = user_handler.create_user('Second User', '*****@*****.**', 'password') assert second_user.first_name == 'Second User' assert not second_user.is_staff
def test_first_ever_created_user_is_staff(data_fixture): user_handler = UserHandler() data_fixture.update_settings(allow_new_signups=True) first_user = user_handler.create_user("First Ever User", "*****@*****.**", "password") assert first_user.first_name == "First Ever User" assert first_user.is_staff second_user = user_handler.create_user("Second User", "*****@*****.**", "password") assert second_user.first_name == "Second User" assert not second_user.is_staff
def test_create_user(): plugin_mock = MagicMock() plugin_registry.registry['mock'] = plugin_mock user_handler = UserHandler() user = user_handler.create_user('Test1', '*****@*****.**', 'password') assert user.pk assert user.first_name == 'Test1' assert user.email == '*****@*****.**' assert user.username == '*****@*****.**' assert Group.objects.all().count() == 1 group = Group.objects.all().first() assert group.users.filter(id=user.id).count() == 1 assert group.name == "Test1's group" assert Database.objects.all().count() == 1 assert Table.objects.all().count() == 2 assert GridView.objects.all().count() == 2 assert TextField.objects.all().count() == 3 assert LongTextField.objects.all().count() == 1 assert BooleanField.objects.all().count() == 2 assert DateField.objects.all().count() == 1 assert GridViewFieldOptions.objects.all().count() == 3 tables = Table.objects.all().order_by('id') model_1 = tables[0].get_model() model_1_results = model_1.objects.all() assert len(model_1_results) == 4 assert model_1_results[0].order == Decimal('1.00000000000000000000') assert model_1_results[1].order == Decimal('2.00000000000000000000') assert model_1_results[2].order == Decimal('3.00000000000000000000') assert model_1_results[3].order == Decimal('4.00000000000000000000') model_2 = tables[1].get_model() model_2_results = model_2.objects.all() assert len(model_2_results) == 3 assert model_2_results[0].order == Decimal('1.00000000000000000000') assert model_2_results[1].order == Decimal('2.00000000000000000000') assert model_2_results[2].order == Decimal('3.00000000000000000000') plugin_mock.user_created.assert_called_with(user, group, None) with pytest.raises(UserAlreadyExist): user_handler.create_user('Test1', '*****@*****.**', 'password')
def test_create_user_with_template(data_fixture): old_templates = settings.APPLICATION_TEMPLATES_DIR settings.APPLICATION_TEMPLATES_DIR = os.path.join( settings.BASE_DIR, "../../../tests/templates") template = data_fixture.create_template(slug="example-template") user_handler = UserHandler() user_handler.create_user("Test1", "*****@*****.**", "password", template=template) assert Group.objects.all().count() == 2 assert GroupUser.objects.all().count() == 1 # We expect the example template to be installed assert Database.objects.all().count() == 1 assert Database.objects.all().first().name == "Event marketing" assert Table.objects.all().count() == 2 settings.APPLICATION_TEMPLATES_DIR = old_templates
def test_create_user_with_invitation(data_fixture): plugin_mock = MagicMock() plugin_registry.registry["mock"] = plugin_mock user_handler = UserHandler() core_handler = CoreHandler() invitation = data_fixture.create_group_invitation(email="*****@*****.**") signer = core_handler.get_group_invitation_signer() with pytest.raises(BadSignature): user_handler.create_user("Test1", "*****@*****.**", "password", "INVALID") with pytest.raises(GroupInvitationDoesNotExist): user_handler.create_user("Test1", "*****@*****.**", "password", signer.dumps(99999)) with pytest.raises(GroupInvitationEmailMismatch): user_handler.create_user("Test1", "*****@*****.**", "password", signer.dumps(invitation.id)) user = user_handler.create_user("Test1", "*****@*****.**", "password", signer.dumps(invitation.id)) assert Group.objects.all().count() == 1 assert Group.objects.all().first().id == invitation.group_id assert GroupUser.objects.all().count() == 2 plugin_mock.user_created.assert_called_once() args = plugin_mock.user_created.call_args assert args[0][0] == user assert args[0][1].id == invitation.group_id assert args[0][2].email == invitation.email assert args[0][2].group_id == invitation.group_id # We do not expect any initial data to have been created. assert Database.objects.all().count() == 0 assert Table.objects.all().count() == 0