def test_get_roles_for_user(dbapp): dbapp.engine.execute(users.insert().values( id=1, password="******", username="******", name="Test User", last_login=datetime.datetime.utcnow(), is_active=True, is_superuser=False, is_staff=False, )) dbapp.engine.execute(users.insert().values( id=2, password="******", username="******", name="Test User", last_login=datetime.datetime.utcnow(), is_active=True, is_superuser=False, is_staff=False, )) dbapp.engine.execute(packages.insert().values(name="test-project")) dbapp.engine.execute(packages.insert().values(name="test-project2")) dbapp.engine.execute(packages.insert().values(name="test-project3")) dbapp.engine.execute(roles.insert().values( package_name="test-project", user_name="test-user", role_name="Owner", )) dbapp.engine.execute(roles.insert().values( package_name="test-project", user_name="test-user", role_name="Maintainer", )) dbapp.engine.execute(roles.insert().values( package_name="test-project2", user_name="a-test-user", role_name="Maintainer", )) dbapp.engine.execute(roles.insert().values( package_name="test-project2", user_name="test-user", role_name="Maintainer", )) assert dbapp.models.packaging.get_roles_for_user("test-user") == [ { "package_name": "test-project", "role_name": 'Maintainer' }, { "package_name": "test-project", "role_name": "Owner" }, { "package_name": "test-project2", "role_name": 'Maintainer' }, ]
def test_get_users_for_project(dbapp): dbapp.engine.execute(users.insert().values( id=1, password="******", username="******", name="Test User", last_login=datetime.datetime.utcnow(), is_active=True, is_superuser=False, is_staff=False, )) dbapp.engine.execute(users.insert().values( id=2, password="******", username="******", name="Test User", last_login=datetime.datetime.utcnow(), is_active=True, is_superuser=False, is_staff=False, )) dbapp.engine.execute(users.insert().values( id=3, password="******", username="******", name="Test User2", last_login=datetime.datetime.utcnow(), is_active=True, is_superuser=False, is_staff=False, )) dbapp.engine.execute(emails.insert().values( user_id=3, email="*****@*****.**", primary=True, verified=True, )) dbapp.engine.execute(packages.insert().values(name="test-project")) dbapp.engine.execute(roles.insert().values( package_name="test-project", user_name="test-user", role_name="Owner", )) dbapp.engine.execute(roles.insert().values( package_name="test-project", user_name="test-user2", role_name="Maintainer", )) dbapp.engine.execute(roles.insert().values( package_name="test-project", user_name="a-test-user", role_name="Maintainer", )) assert dbapp.models.packaging.get_users_for_project("test-project") == [ {"username": "******", "email": None}, {"username": "******", "email": None}, {"username": "******", "email": "*****@*****.**"}, ]
def test_get_roles_for_project(dbapp): dbapp.engine.execute(users.insert().values( id=1, password="******", username="******", name="Test User", last_login=datetime.datetime.utcnow(), is_active=True, is_superuser=False, is_staff=False, )) dbapp.engine.execute(users.insert().values( id=2, password="******", username="******", name="Test User", last_login=datetime.datetime.utcnow(), is_active=True, is_superuser=False, is_staff=False, )) dbapp.engine.execute(users.insert().values( id=3, password="******", username="******", name="Test User2", last_login=datetime.datetime.utcnow(), is_active=True, is_superuser=False, is_staff=False, )) dbapp.engine.execute(packages.insert().values(name="test-project")) dbapp.engine.execute(roles.insert().values( package_name="test-project", user_name="test-user", role_name="Owner", )) dbapp.engine.execute(roles.insert().values( package_name="test-project", user_name="test-user", role_name="Maintainer", )) dbapp.engine.execute(roles.insert().values( package_name="test-project", user_name="a-test-user", role_name="Maintainer", )) assert dbapp.db.packaging.get_roles_for_project("test-project") == [ {"user_name": "a-test-user", "role_name": 'Maintainer'}, {"user_name": "test-user", "role_name": 'Maintainer'}, {"user_name": "test-user", "role_name": "Owner"}, ]
def test_get_projects_for_user(dbapp): dbapp.engine.execute(users.insert().values( password="******", username="******", name="Test User", last_login=datetime.datetime.utcnow(), is_active=True, is_superuser=False, is_staff=False, )) dbapp.engine.execute(packages.insert().values(name="test-project")) dbapp.engine.execute(releases.insert().values( name="test-project", version="1.0", summary="test summmary", _pypi_ordering=1, )) dbapp.engine.execute(releases.insert().values( name="test-project", version="2.0", summary="test summmary 2.0", _pypi_ordering=2, )) dbapp.engine.execute(roles.insert().values( package_name="test-project", user_name="test-user", role_name="Owner", )) assert dbapp.models.packaging.get_projects_for_user("test-user") == [ { "name": "test-project", "summary": "test summmary 2.0" }, ]
def test_get_user_with_email(dbapp): dbapp.engine.execute(users.insert().values( id=1, password="******", username="******", name="Test User", last_login=datetime.datetime.utcnow(), is_active=True, is_superuser=False, is_staff=False, )) dbapp.engine.execute(emails.insert().values( user_id=1, email="*****@*****.**", primary=True, verified=True, )) assert { "id": 1, "date_joined": mock.ANY, "email": "*****@*****.**", "name": "Test User", "username": "******", } == dbapp.db.accounts.get_user("test-user")
def test_get_projects_for_user(dbapp): dbapp.engine.execute(users.insert().values( password="******", username="******", name="Test User", last_login=datetime.datetime.utcnow(), is_active=True, is_superuser=False, is_staff=False, )) dbapp.engine.execute(packages.insert().values(name="test-project")) dbapp.engine.execute(releases.insert().values( name="test-project", version="1.0", summary="test summmary", _pypi_ordering=1, )) dbapp.engine.execute(releases.insert().values( name="test-project", version="2.0", summary="test summmary 2.0", _pypi_ordering=2, )) dbapp.engine.execute(roles.insert().values( package_name="test-project", user_name="test-user", role_name="Owner", )) assert dbapp.db.packaging.get_projects_for_user("test-user") == [ {"name": "test-project", "summary": "test summmary 2.0"}, ]
def test_user_authenticate_invalid(engine, dbapp): engine.execute(users.insert().values( id=1, password="******", username="******", name="Test User", last_login=datetime.datetime.utcnow(), is_active=True, is_superuser=False, is_staff=False, )) dbapp.passlib.verify_and_update = lambda p, h: (False, None) assert not dbapp.db.accounts.user_authenticate("test-user", "password")
def test_get_user(dbapp): dbapp.engine.execute(users.insert().values( password="******", username="******", name="Test User", last_login=datetime.datetime.utcnow(), is_active=True, is_superuser=False, is_staff=False, )) assert { "date_joined": mock.ANY, "email": None, "name": "Test User", "username": "******", } == dbapp.db.accounts.get_user("test-user")
def test_user_authenticate_exception(engine, dbapp): engine.execute(users.insert().values( id=1, password="******", username="******", name="Test User", last_login=datetime.datetime.utcnow(), is_active=True, is_superuser=False, is_staff=False, )) def verify_and_update(password, password_hash): raise ValueError("Invalid something or other") dbapp.passlib.verify_and_update = verify_and_update assert not dbapp.db.accounts.user_authenticate("test-user", "password")
def test_get_user(dbapp): dbapp.engine.execute(users.insert().values( password="******", username="******", name="Test User", last_login=datetime.datetime.utcnow(), is_active=True, is_superuser=False, is_staff=False, )) assert { "date_joined": mock.ANY, "email": None, "name": "Test User", "username": "******", } == dbapp.models.accounts.get_user("test-user")
def test_user_authenticate(dbapp): dbapp.engine.execute(users.insert().values( id=1, password="******", username="******", name="Test User", last_login=datetime.datetime.utcnow(), is_active=True, is_superuser=False, is_staff=False, )) dbapp.passlib.verify_and_update = pretend.call_recorder(lambda p, h: (True, None)) assert dbapp.db.accounts.user_authenticate("test-user", "password") assert dbapp.passlib.verify_and_update.calls == [ pretend.call("password", "hash!"), ]
def test_user_authenticate(dbapp): dbapp.engine.execute(users.insert().values( id=1, password="******", username="******", name="Test User", last_login=datetime.datetime.utcnow(), is_active=True, is_superuser=False, is_staff=False, )) dbapp.passlib.verify_and_update = pretend.call_recorder( lambda p, h: (True, None) ) assert dbapp.db.accounts.user_authenticate("test-user", "password") assert dbapp.passlib.verify_and_update.calls == [ pretend.call("password", "hash!"), ]
def test_get_users_for_project(dbapp): dbapp.engine.execute(users.insert().values( id=1, password="******", username="******", name="Test User", last_login=datetime.datetime.utcnow(), is_active=True, is_superuser=False, is_staff=False, )) dbapp.engine.execute(users.insert().values( id=2, password="******", username="******", name="Test User", last_login=datetime.datetime.utcnow(), is_active=True, is_superuser=False, is_staff=False, )) dbapp.engine.execute(users.insert().values( id=3, password="******", username="******", name="Test User2", last_login=datetime.datetime.utcnow(), is_active=True, is_superuser=False, is_staff=False, )) dbapp.engine.execute(emails.insert().values( user_id=3, email="*****@*****.**", primary=True, verified=True, )) dbapp.engine.execute(packages.insert().values(name="test-project")) dbapp.engine.execute(roles.insert().values( package_name="test-project", user_name="test-user", role_name="Owner", )) dbapp.engine.execute(roles.insert().values( package_name="test-project", user_name="test-user2", role_name="Maintainer", )) dbapp.engine.execute(roles.insert().values( package_name="test-project", user_name="test-user", role_name="Maintainer", )) dbapp.engine.execute(roles.insert().values( package_name="test-project", user_name="a-test-user", role_name="Maintainer", )) assert dbapp.models.packaging.get_users_for_project("test-project") == [ { "username": "******", "email": None }, { "username": "******", "email": None }, { "username": "******", "email": "*****@*****.**" }, ]