Пример #1
0
    def test_iam_renew_cookie_on_401_failure(self, m_req, m_login):
        # mock 401
        m_response_bad = mock.MagicMock()
        type(m_response_bad).status_code = mock.PropertyMock(return_value=401)

        m_req.return_value = m_response_bad

        iam = IAMSession(MOCK_API_KEY,
                         'http://127.0.0.1:5984',
                         auto_renew=True)
        iam.login()
        self.assertEqual(m_login.call_count, 1)

        # add a valid cookie to jar
        iam.cookies.set_cookie(self._mock_cookie())

        resp = iam.request('GET', 'http://127.0.0.1:5984/mydb1')
        self.assertEqual(resp.status_code, 401)
        self.assertEqual(m_login.call_count, 2)
        self.assertEqual(m_req.call_count, 2)

        resp = iam.request('GET', 'http://127.0.0.1:5984/mydb1')
        self.assertEqual(resp.status_code, 401)
        self.assertEqual(m_login.call_count, 3)
        self.assertEqual(m_req.call_count, 4)
Пример #2
0
    def test_iam_renew_cookie_on_401_success(self, m_req, m_login):
        # mock 200
        m_response_ok = mock.MagicMock()
        type(m_response_ok).status_code = mock.PropertyMock(return_value=200)
        type(m_response_ok).text = mock.PropertyMock(
            return_value='{"ok": true}')
        # mock 401
        m_response_bad = mock.MagicMock()
        type(m_response_bad).status_code = mock.PropertyMock(return_value=401)

        m_req.side_effect = [m_response_bad, m_response_ok, m_response_ok]

        iam = IAMSession(MOCK_API_KEY,
                         'http://127.0.0.1:5984',
                         auto_renew=True)
        iam.login()
        self.assertEqual(m_login.call_count, 1)

        # add a valid cookie to jar
        iam.cookies.set_cookie(self._mock_cookie())

        resp = iam.request('GET', 'http://127.0.0.1:5984/mydb1')
        self.assertEqual(resp.status_code, 200)
        self.assertEqual(m_login.call_count, 2)
        self.assertEqual(m_req.call_count, 2)

        resp = iam.request('GET', 'http://127.0.0.1:5984/mydb1')
        self.assertEqual(resp.status_code, 200)
        self.assertEqual(m_login.call_count, 2)
        self.assertEqual(m_req.call_count, 3)
Пример #3
0
    def test_iam_first_request(self, m_req, m_login):
        # mock 200
        m_response_ok = mock.MagicMock()
        type(m_response_ok).status_code = mock.PropertyMock(return_value=200)
        type(m_response_ok).text = mock.PropertyMock(
            return_value='{"ok": true}')

        m_req.return_value = m_response_ok

        iam = IAMSession(MOCK_API_KEY,
                         'http://127.0.0.1:5984',
                         auto_renew=True)
        iam.login()

        self.assertEqual(m_login.call_count, 1)
        self.assertEqual(m_req.call_count, 0)

        # add a valid cookie to jar
        iam.cookies.set_cookie(self._mock_cookie())

        resp = iam.request('GET', 'http://127.0.0.1:5984/mydb1')

        self.assertEqual(m_login.call_count, 1)
        self.assertEqual(m_req.call_count, 1)
        self.assertEqual(resp.status_code, 200)
Пример #4
0
    def test_iam_renew_cookie_disabled(self, m_req, m_login):
        # mock 401
        m_response_bad = mock.MagicMock()
        type(m_response_bad).status_code = mock.PropertyMock(return_value=401)

        m_req.return_value = m_response_bad

        iam = IAMSession(MOCK_API_KEY, 'http://127.0.0.1:5984', auto_renew=False)
        iam.login()
        self.assertEqual(m_login.call_count, 1)

        resp = iam.request('GET', 'http://127.0.0.1:5984/mydb1')
        self.assertEqual(resp.status_code, 401)
        self.assertEqual(m_login.call_count, 1)  # no attempt to renew
        self.assertEqual(m_req.call_count, 1)

        resp = iam.request('GET', 'http://127.0.0.1:5984/mydb1')
        self.assertEqual(resp.status_code, 401)
        self.assertEqual(m_login.call_count, 1)  # no attempt to renew
        self.assertEqual(m_req.call_count, 2)
Пример #5
0
    def test_iam_renew_cookie_on_expiry(self, m_req, m_login):
        # mock 200
        m_response_ok = mock.MagicMock()
        type(m_response_ok).status_code = mock.PropertyMock(return_value=200)
        m_response_ok.json.return_value = {'ok': True}

        m_req.return_value = m_response_ok

        iam = IAMSession(MOCK_API_KEY,
                         'http://127.0.0.1:5984',
                         auto_renew=True)
        iam.login()

        # add an expired cookie to jar
        iam.cookies.set_cookie(self._mock_cookie(expires_secs=-300))

        resp = iam.request('GET', 'http://127.0.0.1:5984/mydb1')

        self.assertEqual(m_login.call_count, 2)
        self.assertEqual(m_req.call_count, 1)
        self.assertEqual(resp.status_code, 200)