Ejemplo n.º 1
0
    def test_login_success_with_timezone(self, mock_gmp: GmpMockFactory):
        mock_gmp.mock_response(
            'authenticate',
            '''
            <authenticate>
                <timezone>Foo/Bar</timezone>
            </authenticate>
            ''',
        )
        response = self.query('''
            mutation {
              login(username: "******", password: "******") {
                ok
                timezone
              }
            }
            ''')
        self.assertResponseStatusCode(response, 200)

        mock_gmp.assert_authenticated_with('foo', 'bar')

        json = response.json()

        self.assertResponseNoErrors(response)

        timezone = json['data']['login']['timezone']

        self.assertEqual(timezone, 'Foo/Bar')
Ejemplo n.º 2
0
    def test_login_success(self, mock_gmp: GmpMockFactory):
        response = self.query('''
            mutation {
              login(username: "******", password: "******") {
                ok
              }
            }
            ''')
        self.assertResponseStatusCode(response, 200)

        mock_gmp.assert_authenticated_with('foo', 'bar')
Ejemplo n.º 3
0
    def test_login_failure(self, mock_gmp: GmpMockFactory):
        mock_gmp.fail_authentication()

        response = self.query('''
            mutation {
              login(username: "******", password: "******") {
                ok
              }
            }
            ''')

        mock_gmp.assert_authenticated_with('foo', 'bar')

        self.assertResponseStatusCode(response, 200)
        self.assertResponseHasErrorMessage(response, 'Authentication failed')
Ejemplo n.º 4
0
    def test_login_success_with_session_timeout(self,
                                                mock_gmp: GmpMockFactory):
        mock_gmp.mock_response(
            'authenticate',
            '''
            <authenticate>
            </authenticate>
            ''',
        )

        now = datetime.datetime.now()

        session = self.client.session
        session.set_expiry(300)
        session.save()

        response = self.query('''
            mutation {
              login(username: "******", password: "******") {
                ok
                sessionTimeout
              }
            }
            ''')
        self.assertResponseStatusCode(response, 200)

        mock_gmp.assert_authenticated_with('foo', 'bar')

        json = response.json()

        self.assertResponseNoErrors(response)

        timeout = json['data']['login']['sessionTimeout']

        timeout_read = datetime.datetime.strptime(timeout,
                                                  '%Y-%m-%dT%H:%M:%S.%f')
        diff_time = timeout_read - now

        self.assertEqual(diff_time.seconds, settings.SESSION_COOKIE_AGE)
Ejemplo n.º 5
0
    def test_login_success_with_locale(self, mock_gmp: GmpMockFactory):
        mock_gmp.mock_response(
            'authenticate',
            '''
            <authenticate>
                <timezone>Foo/Bar</timezone>
            </authenticate>
            ''',
        )
        mock_gmp.mock_response(
            'get_user_setting',
            '''
            <get_settings_response>
                <setting>
                    <value>foo</value>
                </setting>
            </get_settings_response>
            ''',
        )
        response = self.query('''
            mutation {
              login(username: "******", password: "******") {
                ok
                locale
              }
            }
            ''')
        self.assertResponseStatusCode(response, 200)

        mock_gmp.assert_authenticated_with('foo', 'bar')

        json = response.json()

        self.assertResponseNoErrors(response)

        locale = json['data']['login']['locale']

        self.assertEqual(locale, 'foo')
Ejemplo n.º 6
0
    def test_get_current_user(self, mock_gmp: GmpMockFactory):
        mock_gmp.mock_response(
            'authenticate',
            '''
            <authenticate>
            </authenticate>
            ''',
        )

        now = datetime.datetime.now()

        session = self.client.session
        session.set_expiry(300)
        session.save()

        login_response = self.query('''
          mutation {
            login(username: "******", password: "******") {
              ok
              sessionTimeout
            }
          }
          ''')
        self.assertResponseStatusCode(login_response, 200)

        mock_gmp.assert_authenticated_with('foo', 'bar')

        auth_response = self.query('''
          query {
            currentUser {
              username
              isAuthenticated
              sessionTimeout
            }
          }
          ''')

        auth_data = auth_response.json()
        current_user = auth_data['data']['currentUser']

        timeout = current_user['sessionTimeout']

        timeout_read = datetime.datetime.strptime(timeout,
                                                  '%Y-%m-%dT%H:%M:%S.%f')
        diff_time = timeout_read - now

        self.assertEqual(diff_time.seconds,
                         datetime.timedelta(minutes=5).seconds)

        self.assertEqual(current_user['isAuthenticated'], True)
        self.assertEqual(current_user['username'], 'foo')

        logout_response = self.query('''
          mutation {
            logout {
              ok
            }
          }
          ''')
        self.assertResponseStatusCode(logout_response, 200)

        auth_response = self.query('''
          query {
            currentUser {
              username
              isAuthenticated
              sessionTimeout
            }
          }
          ''')

        auth_data = auth_response.json()
        current_user = auth_data['data']['currentUser']

        self.assertEqual(current_user['isAuthenticated'], False)
        self.assertIsNone(current_user['username'])
        self.assertIsNone(current_user['sessionTimeout'])