Skip to content
Snippets Groups Projects
Select Git revision
  • 87c5f9d0c36c973fea5d38fc8a3f6634a1fc2d38
  • test default protected
  • master protected
  • original
  • pirati-backup protected
  • beta-2
  • beta-1
  • v3.1.4
  • v3.1.3
  • v3.1.2
  • v3.1.1
  • v3.1.0
  • v3.0.16
  • v3.0.15
  • v3.0.14
  • v3.0.13
  • v3.0.12
  • v3.0.11
  • v3.0.10
  • v3.0.9
  • v3.0.8
  • v3.0.7
  • v3.0.6
  • v3.0.5
  • v3.0.4
25 results

view_utils.py

Blame
  • test_node.py 5.29 KiB
    import pytest
    from graphql_relay import to_global_id
    
    from openlobby.core.models import OpenIdClient, User
    
    from ..dummy import prepare_reports
    from ..utils import call_api
    
    
    pytestmark = [pytest.mark.django_db, pytest.mark.usefixtures('django_es')]
    
    
    def test_login_shortcut(client, snapshot):
        OpenIdClient.objects.create(id=10, name='foo', issuer='foo', is_shortcut=True)
        query = """
        query {{
            node (id:"{id}") {{
                ... on LoginShortcut {{
                    id
                    name
                }}
            }}
        }}
        """.format(id=to_global_id('LoginShortcut', 10))
        response = call_api(client, query)
        snapshot.assert_match(response)
    
    
    def test_author(client, snapshot):
        prepare_reports()
        query = """
        query {{
            node (id:"{id}") {{
                ... on Author {{
                    id
                    firstName
                    lastName
                    hasCollidingName
                    totalReports
                    extra
                }}
            }}
        }}
        """.format(id=to_global_id('Author', 1))
        response = call_api(client, query)
        snapshot.assert_match(response)
    
    
    def test_author__returns_only_if_is_author(client, snapshot):
        User.objects.create(id=7, is_author=False)
        query = """
        query {{
            node (id:"{id}") {{
                ... on Author {{
                    id
                }}
            }}
        }}
        """.format(id=to_global_id('Author', 7))
        response = call_api(client, query)
        snapshot.assert_match(response)
    
    
    def test_report(client, snapshot):
        prepare_reports()
        query = """
        query {{
            node (id:"{id}") {{
                ... on Report {{
                    id
                    date
                    published
                    title
                    body
                    receivedBenefit
                    providedBenefit
                    ourParticipants
                    otherParticipants
                    extra
                    author {{
                        id
                        firstName
                        lastName
                        hasCollidingName
                        totalReports
                        extra
                    }}
                }}
            }}
        }}
        """.format(id=to_global_id('Report', 1))
        response = call_api(client, query)
        snapshot.assert_match(response)
    
    
    def test_report__is_draft(client, snapshot):
        prepare_reports()
        query = """
        query {{
            node (id:"{id}") {{
                ... on Report {{
                    id
                    title
                }}
            }}
        }}
        """.format(id=to_global_id('Report', 4))
        response = call_api(client, query, username='wolf')
        snapshot.assert_match(response)
    
    
    def test_report__is_draft__unauthorized_viewer(client, snapshot):
        prepare_reports()
        query = """
        query {{
            node (id:"{id}") {{
                ... on Report {{
                    id
                    title
                }}
            }}
        }}
        """.format(id=to_global_id('Report', 4))
        response = call_api(client, query)
        snapshot.assert_match(response)
    
    
    def test_report__is_draft__viewer_is_not_author(client, snapshot):
        prepare_reports()
        query = """
        query {{
            node (id:"{id}") {{
                ... on Report {{
                    id
                    title
                }}
            }}
        }}
        """.format(id=to_global_id('Report', 4))
        response = call_api(client, query, username='spongebob')
        snapshot.assert_match(response)
    
    
    def test_user__unauthorized(client, snapshot):
        User.objects.create(id=8, username='albert', openid_uid='albert@einstein.id',
            first_name='Albert', last_name='Einstein', extra={'e': 'mc2'})
        query = """
        query {{
            node (id:"{id}") {{
                ... on User {{
                    id
                    firstName
                    lastName
                    hasCollidingName
                    openidUid
                    isAuthor
                    extra
                }}
            }}
        }}
        """.format(id=to_global_id('User', 8))
        response = call_api(client, query)
        snapshot.assert_match(response)
    
    
    def test_user__not_a_viewer(client, snapshot):
        User.objects.create(id=8, username='albert', openid_uid='albert@einstein.id',
            first_name='Albert', last_name='Einstein', extra={'e': 'mc2'})
        User.objects.create(id=2, username='isaac', openid_uid='isaac@newton.id',
            first_name='Isaac', last_name='Newton', extra={'apple': 'hit'})
        query = """
        query {{
            node (id:"{id}") {{
                ... on User {{
                    id
                    firstName
                    lastName
                    hasCollidingName
                    openidUid
                    isAuthor
                    extra
                }}
            }}
        }}
        """.format(id=to_global_id('User', 8))
        response = call_api(client, query, username='isaac')
        snapshot.assert_match(response)
    
    
    def test_user(client, snapshot):
        User.objects.create(id=8, username='albert', openid_uid='albert@einstein.id',
                first_name='Albert', last_name='Einstein', extra={'e': 'mc2'})
        query = """
        query {{
            node (id:"{id}") {{
                ... on User {{
                    id
                    firstName
                    lastName
                    hasCollidingName
                    openidUid
                    isAuthor
                    extra
                }}
            }}
        }}
        """.format(id=to_global_id('User', 8))
        response = call_api(client, query, username='albert')
        snapshot.assert_match(response)