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
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") ]
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") ]
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") ]
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" ) ]
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