Пример #1
0
    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
Пример #2
0
    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}"
Пример #3
0
    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"
Пример #4
0
    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"
Пример #5
0
    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'
Пример #6
0
    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
Пример #7
0
    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