示例#1
0
def test_get_tos_consent(tos_consents, users, roles, toss_multiple_roles):
    tests = [
        {"username": user.username, "role": role.role, "version": version}
        for user in users
        for role in roles
        for version in [None, 0]
    ]

    for test in tests:
        consent = TosConsent.get(**test)
        assert isinstance(consent, bool)
        if test["version"] is None:
            corrects = [
                c
                for c in TosConsent.objects.filter(
                    user__username=test["username"],
                    tos__role=test["role"],
                    tos__current=True,
                ).order_by("-datetime")
            ]
        else:
            corrects = [
                c
                for c in TosConsent.objects.filter(
                    user__username=test["username"],
                    tos__role=test["role"],
                    tos__version=test["version"],
                ).order_by("-datetime")
            ]
        for correct in corrects[1:]:
            assert corrects[0].datetime > correct.datetime
        assert consent == corrects[0].accepted
示例#2
0
def test_get_tos_consent__doesnt_exist(tos_consents, users, roles):
    TosConsent.objects.filter(user=users[1], tos__role=roles[0]).delete()
    TosConsent.objects.filter(user=users[0], tos__role=roles[1]).delete()
    tests = [
        {
            "username": users[1].username,
            "role": roles[0].role,
            "version": version,
        }
        for version in [None, 0]
    ] + [{"username": users[0].username, "role": roles[1].role, "version": 0}]

    for test in tests:
        consent = TosConsent.get(**test)
        assert consent is None
示例#3
0
def teacher_tos_accepted_check(user):
    return Consent.get(user.username, "teacher")