Exemplo n.º 1
0
    def test_add_role(self, db_request):
        role_name = "Maintainer"
        project = ProjectFactory.create(name="foo")
        user = UserFactory.create(username="******")

        db_request.route_path = pretend.call_recorder(
            lambda *a, **kw: "/the-redirect/")
        db_request.session = pretend.stub(
            flash=pretend.call_recorder(lambda *a, **kw: None))
        db_request.POST["username"] = user.username
        db_request.POST["role_name"] = role_name
        db_request.user = UserFactory.create()
        db_request.remote_addr = "192.168.1.1"

        views.add_role(project, db_request)

        assert db_request.session.flash.calls == [
            pretend.call(f"Added 'bar' as '{role_name}' on 'foo'",
                         queue="success")
        ]

        role = db_request.db.query(Role).one()
        assert role.role_name == role_name
        assert role.user == user
        assert role.project == project
Exemplo n.º 2
0
    def test_add_role_no_user(self, db_request):
        project = ProjectFactory.create(name="foo")

        db_request.POST = {"username": "******"}
        db_request.route_path = pretend.call_recorder(lambda *a, **kw: "/the-redirect/")
        db_request.session = pretend.stub(
            flash=pretend.call_recorder(lambda *a, **kw: None)
        )

        with pytest.raises(HTTPSeeOther):
            views.add_role(project, db_request)

        assert db_request.session.flash.calls == [
            pretend.call("Unknown username 'bar'", queue="error")
        ]
Exemplo n.º 3
0
    def test_add_role_no_user(self, db_request):
        project = ProjectFactory.create(name="foo")

        db_request.POST = {"username": "******"}
        db_request.route_path = pretend.call_recorder(lambda *a, **kw: "/the-redirect/")
        db_request.session = pretend.stub(
            flash=pretend.call_recorder(lambda *a, **kw: None)
        )

        with pytest.raises(HTTPSeeOther):
            views.add_role(project, db_request)

        assert db_request.session.flash.calls == [
            pretend.call(f"Unknown username 'bar'", queue="error")
        ]
Exemplo n.º 4
0
    def test_add_role_with_existing_role(self, db_request):
        project = ProjectFactory.create(name="foo")
        user = UserFactory.create(username="******")
        role = RoleFactory.create(project=project, user=user)

        db_request.POST = {"username": "******", "role_name": role.role_name}
        db_request.route_path = pretend.call_recorder(lambda *a, **kw: "/the-redirect/")
        db_request.session = pretend.stub(
            flash=pretend.call_recorder(lambda *a, **kw: None)
        )

        with pytest.raises(HTTPSeeOther):
            views.add_role(project, db_request)

        assert db_request.session.flash.calls == [
            pretend.call("User 'bar' already has a role on this project", queue="error")
        ]
Exemplo n.º 5
0
    def test_add_role_with_existing_role(self, db_request):
        project = ProjectFactory.create(name="foo")
        user = UserFactory.create(username="******")
        role = RoleFactory.create(project=project, user=user)

        db_request.POST = {"username": "******", "role_name": role.role_name}
        db_request.route_path = pretend.call_recorder(lambda *a, **kw: "/the-redirect/")
        db_request.session = pretend.stub(
            flash=pretend.call_recorder(lambda *a, **kw: None)
        )

        with pytest.raises(HTTPSeeOther):
            views.add_role(project, db_request)

        assert db_request.session.flash.calls == [
            pretend.call(
                f"User 'bar' already has a role on this project", queue="error"
            )
        ]
Exemplo n.º 6
0
    def test_add_role(self, db_request):
        role_name = "Maintainer"
        project = ProjectFactory.create(name="foo")
        user = UserFactory.create(username="******")

        db_request.route_path = pretend.call_recorder(lambda *a, **kw: "/the-redirect/")
        db_request.session = pretend.stub(
            flash=pretend.call_recorder(lambda *a, **kw: None)
        )
        db_request.POST["username"] = user.username
        db_request.POST["role_name"] = role_name
        db_request.user = UserFactory.create()
        db_request.remote_addr = "192.168.1.1"

        views.add_role(project, db_request)

        assert db_request.session.flash.calls == [
            pretend.call(f"Added 'bar' as '{role_name}' on 'foo'", queue="success")
        ]

        role = db_request.db.query(Role).one()
        assert role.role_name == role_name
        assert role.user == user
        assert role.project == project