Ejemplo n.º 1
0
class TestRmapUserViews(OsfTestCase):
    def setUp(self):
        super(TestRmapUserViews, self).setUp()
        self.user = AuthUserFactory()
        self.url = api_url_for('user_rmap_post')

        self._old_rmap_url = settings.RMAP_BASE_URL
        self._old_rmap_pass = settings.RMAP_PASS

        settings.RMAP_BASE_URL = 'rmaptest.test/'
        settings.RMAP_PASS = '******'

        self._set_up_mock_response_for_user(self.user)

    def _set_up_mock_response_for_user(self, user):
        rmap_url = _rmap_url_for_user(user)
        httpretty.register_uri(httpretty.POST,
                               rmap_url,
                               body='abc123',
                               status=200)

    def tearDown(self):
        super(TestRmapUserViews, self).tearDown()
        settings.RMAP_BASE_URL = self._old_rmap_url
        settings.RMAP_PASS = self._old_rmap_pass

    def test_rmap_get_valid_no_disco_id(self):
        res = self.app.get(self.url, auth=self.user.auth)
        assert_equal(res.status_code, 200)
        assert_equal(res.json['disco_id'], None)

    def test_rmap_get_valid_with_disco_id(self):
        disco_id = 'pan1cath3d1sc0'
        self.user.set_identifier_value('disco', disco_id)
        res = self.app.get(self.url, auth=self.user.auth)
        assert_equal(res.status_code, 200)
        assert_equal(res.json['disco_id'], disco_id)

    def test_rmap_post_valid(self):
        res = self.app.post_json(self.url, {}, auth=self.user.auth)
        assert_equal(res.status_code, 201)
        self.user.reload()

        rmap_id = self.user.get_identifier('disco')
        assert_true(bool(rmap_id))
        assert_equal(rmap_id.value, 'abc123')