Exemple #1
0
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'
        },
    ]
Exemple #2
0
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": "*****@*****.**"},
    ]
Exemple #3
0
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"},
    ]
Exemple #4
0
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"
        },
    ]
Exemple #5
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")
Exemple #6
0
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"},
    ]
Exemple #7
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")
Exemple #8
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")
Exemple #9
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")
Exemple #10
0
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")
Exemple #11
0
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")
Exemple #12
0
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")
Exemple #13
0
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!"),
    ]
Exemple #14
0
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")
Exemple #15
0
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!"),
    ]
Exemple #16
0
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": "*****@*****.**"
        },
    ]