def test_deletes_user(self, db_request, monkeypatch): user = UserFactory.create() project = ProjectFactory.create() journal = JournalEntryFactory(submitted_by=user) RoleFactory(project=project, user=user, role_name='Owner') deleted_user = UserFactory.create(username="******") db_request.matchdict['user_id'] = str(user.id) db_request.params = {'username': user.username} db_request.route_path = pretend.call_recorder(lambda a: '/foobar') db_request.user = UserFactory.create() db_request.remote_addr = '10.10.10.10' remove_project = pretend.call_recorder(lambda *a, **kw: None) monkeypatch.setattr(views, 'remove_project', remove_project) result = views.user_delete(db_request) db_request.db.flush() assert not db_request.db.query(User).get(user.id) assert remove_project.calls == [ pretend.call(project, db_request, flash=False), ] assert db_request.route_path.calls == [pretend.call('admin.user.list')] assert result.status_code == 303 assert result.location == '/foobar' assert journal.submitted_by == deleted_user
def test_deletes_user(self, db_request, monkeypatch): user = UserFactory.create() project = ProjectFactory.create() another_project = ProjectFactory.create() RoleFactory(project=project, user=user, role_name="Owner") deleted_user = UserFactory.create(username="******") # Create an extra JournalEntry by this user which should be # updated with the deleted-user user. JournalEntryFactory(submitted_by=user, action="some old journal") db_request.matchdict["user_id"] = str(user.id) db_request.params = {"username": user.username} db_request.route_path = pretend.call_recorder(lambda a: "/foobar") db_request.user = UserFactory.create() result = views.user_delete(db_request) db_request.db.flush() assert not db_request.db.query(User).get(user.id) assert db_request.db.query(Project).all() == [another_project] assert db_request.route_path.calls == [pretend.call("admin.user.list")] assert result.status_code == 303 assert result.location == "/foobar" # Check that the correct journals were written/modified old_journal = ( db_request.db.query(JournalEntry) .options(joinedload(JournalEntry.submitted_by)) .filter(JournalEntry.action == "some old journal") .one() ) assert old_journal.submitted_by == deleted_user remove_journal = ( db_request.db.query(JournalEntry) .filter(JournalEntry.action == "remove project") .one() ) assert remove_journal.name == project.name nuke_journal = ( db_request.db.query(JournalEntry) .filter(JournalEntry.action == "nuke user") .one() ) assert nuke_journal.name == f"user:{user.username}"
def test_deletes_user_bad_confirm(self, db_request, monkeypatch): user = UserFactory.create() project = ProjectFactory.create() RoleFactory(project=project, user=user, role_name="Owner") db_request.matchdict["user_id"] = str(user.id) db_request.params = {"username": "******"} db_request.route_path = pretend.call_recorder(lambda a, **k: "/foobar") result = views.user_delete(db_request) db_request.db.flush() assert db_request.db.query(User).get(user.id) assert db_request.db.query(Project).all() == [project] assert db_request.route_path.calls == [ pretend.call("admin.user.detail", user_id=user.id) ] assert result.status_code == 303 assert result.location == "/foobar"
def test_deletes_user_bad_confirm(self, db_request, monkeypatch): user = UserFactory.create() project = ProjectFactory.create() RoleFactory(project=project, user=user, role_name='Owner') db_request.matchdict['user_id'] = str(user.id) db_request.params = {'username': '******'} db_request.route_path = pretend.call_recorder(lambda a, **k: '/foobar') remove_project = pretend.call_recorder(lambda *a, **kw: None) monkeypatch.setattr(views, 'remove_project', remove_project) result = views.user_delete(db_request) db_request.db.flush() assert db_request.db.query(User).get(user.id) assert remove_project.calls == [] assert db_request.route_path.calls == [ pretend.call('admin.user.detail', user_id=user.id), ] assert result.status_code == 303 assert result.location == '/foobar'
def test_deletes_user(self, db_request, monkeypatch): user = UserFactory.create() project = ProjectFactory.create() another_project = ProjectFactory.create() journal = JournalEntryFactory(submitted_by=user) RoleFactory(project=project, user=user, role_name="Owner") deleted_user = UserFactory.create(username="******") db_request.matchdict["user_id"] = str(user.id) db_request.params = {"username": user.username} db_request.route_path = pretend.call_recorder(lambda a: "/foobar") db_request.user = UserFactory.create() db_request.remote_addr = "10.10.10.10" result = views.user_delete(db_request) db_request.db.flush() assert not db_request.db.query(User).get(user.id) assert db_request.db.query(Project).all() == [another_project] assert db_request.route_path.calls == [pretend.call("admin.user.list")] assert result.status_code == 303 assert result.location == "/foobar" assert journal.submitted_by == deleted_user