Esempio n. 1
0
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")
Esempio n. 2
0
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
Esempio n. 3
0
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
Esempio n. 4
0
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')
Esempio n. 5
0
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
Esempio n. 6
0
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