Example #1
0
    def test_view_resume_switch(self):
        for provider in providers.values():
            user = FakeModels.user()
            account = FakeModels.account(provider=provider, user=user)
            resume = FakeModels.resume(account=account, provider=provider)
            self.auth_user(user=user)

            body = dict(id=resume.identity)
            response = self.client.post(
                url_for('views.switch'), data=body,
                headers={'X-CSRFToken': generate_csrf()})
            same_resume = Resume.query.get(resume.identity)

            self.assertFalse(same_resume.autoupdate)
            self.assertEqual(response.status_code, 400)

            another_resume = FakeModels.resume(provider=provider)
            body = dict(resume=another_resume.identity)
            response = self.client.post(url_for('views.switch'), data=body)
            same_resume = Resume.query.get(another_resume.identity)

            self.assertFalse(same_resume.autoupdate)
            self.assertEqual(response.status_code, 404)

            body = dict(resume=resume.identity)
            response = self.client.post(url_for('views.switch'), data=body)
            same_resume = Resume.query.get(resume.identity)

            self.assertTrue(same_resume.autoupdate)
            self.assertEqual(response.status_code, 200)
Example #2
0
    def test_view_accounts(self):
        for provider in providers.values():
            user = FakeModels.user()
            FakeModels.account(provider=provider, user=user)

            self.auth_user(user=user)
            response = self.client.get(url_for('views.accounts'))

            self.assertEqual(response.status_code, 200)
Example #3
0
    def test_task_refresh_tokens(self):
        for provider in providers.values():
            MockResponses.provider_tokenize_refresh()
            FakeModels.account(provider=provider)

        result = tasks.refresh_tokens()

        total = len(providers)
        self.assertTaskResult(result, total=total, success=total)
Example #4
0
    def test_view_login_provider_error(self):
        for provider in providers.values():
            MockResponses.provider_tokenize_access(provider)
            MockResponses.provider_identity(provider, code=400)

            url = url_for('views.login', provider=provider.name, code=123)
            response = self.client.get(url)

            self.assertFalse(Account.query.all())
            self.assertEqual(response.status_code, 302)
            self.assertTrue(response.location.endswith(url_for('views.main')))
Example #5
0
    def test_view_login(self):
        for provider in providers.values():
            MockResponses.provider_tokenize_access(provider)
            MockResponses.provider_identity(provider)

            url = url_for('views.login', provider=provider.name, code=123)
            response = self.client.get(url)

            self.assertResponseRedirect(response, url_for('views.resume'))

        self.assertEqual(Account.query.count(), len(providers))
Example #6
0
    def test_view_resume_provider_error(self):
        for provider in providers.values():
            MockResponses.provider_fetch(provider, body=dict(), code=401)

            user = FakeModels.user()
            account = FakeModels.account(provider=provider, user=user)

            self.auth_user(user=user)
            response = self.client.get(url_for('views.resume'))
            same_account = Account.query.get(account.identity)

            self.assertEqual(response.status_code, 200)
            self.assertFalse(same_account.resume)
Example #7
0
    def test_task_touch_resume_disable(self):
        for provider in providers.values():
            resume = FakeModels.resume(provider=provider,
                                       autoupdate=True,
                                       old=True)
            MockResponses.provider_touch(provider,
                                         identity=resume.identity,
                                         code=500)

            result = tasks.touch_resume()
            same_resume = Resume.query.get(resume.identity)

            self.assertFalse(same_resume.autoupdate)
            self.assertTaskResult(result, total=1, success=0, skipped=1)
Example #8
0
    def test_task_touch_resume(self):
        for provider in providers.values():
            FakeModels.resume(provider=provider, autoupdate=True)
            resume = FakeModels.resume(provider=provider,
                                       autoupdate=True,
                                       old=True)
            MockResponses.provider_touch(provider, identity=resume.identity)

        result = tasks.touch_resume()

        prov = len(providers)
        self.assertTaskResult(result,
                              total=prov * 2,
                              success=prov,
                              skipped=prov)
Example #9
0
    def test_view_login_redirect(self):
        for provider in providers.values():
            url = url_for('views.login', provider=provider.name)
            response = self.client.get(url)

            self.assertResponseRedirect(response, provider.oauth.client_id)
Example #10
0
 def test_view_main(self):
     FakeModels.task()
     for provider in providers.values():
         self.auth_user(FakeModels.user(), last_provider=provider.name)
         response = self.client.get(url_for('views.main'))
         self.assertEqual(response.status_code, 200)