def test_request_critical_css(self, requests_get_mock, settings): class ResponseMock: status_code = 200 text = 'foo' url = 'http://foo.bar.com' def raise_for_status(self): return False settings.PENTHOUSE_URL = 'http://foobar:3000/' settings.PENTHOUSE_CONFIG = {} settings.SESSION_COOKIE_SECURE = False site = Site.objects.create(domain='test.com') settings.SITE_ID = site.id requests_get_mock.return_value = ResponseMock() api = PenthouseApi() api.request_critical_css('/foo', 'css/test.css') requests_get_mock.assert_called_once_with( 'http://foobar:3000/', { 'url': 'http://test.com/foo', 'css': 'http://test.com/css/test.css' }, )
def test_request_critical_css_raises(self, requests_get_mock, settings): settings.PENTHOUSE_URL = 'http://foobar:3000/' settings.SESSION_COOKIE_SECURE = False site = Site.objects.create(domain='test.com') settings.SITE_ID = site.id requests_get_mock.side_effect = requests.RequestException() api = PenthouseApi() with pytest.raises(PenthouseException): api.request_critical_css('/foo', 'css/test.css')
def test_get_params(self, settings): settings.SESSION_COOKIE_SECURE = False settings.PENTHOUSE_CONFIG = {'width': '100'} site = Site.objects.create(domain='test.com') settings.SITE_ID = site.id api = PenthouseApi() assert api.get_params('/foo', 'css/test.css') == ({ 'css': 'http://test.com/css/test.css', 'url': 'http://test.com/foo', 'width': '100', })
def test_get_critical_css(self, requests_get_mock): class ResponseMock: status_code = 200 text = 'foo' url = 'http://foo.bar.com' def raise_for_status(self): return False requests_get_mock.return_value = ResponseMock() api = PenthouseApi() css = api.get_critical_css('/foo', 'css/test.css') assert css == 'foo'
def test_get_critical_css_raises_error_in_text(self, requests_get_mock): class ResponseMock: status_code = 200 text = '401 Unauthorized\n' url = 'http://foo.bar.com' def raise_for_status(self): return False requests_get_mock.return_value = ResponseMock() api = PenthouseApi() with pytest.raises(PenthouseException): api.get_critical_css('/foo', 'css/test.css')
def test_request_critical_css_raises_invalid_status( self, requests_get_mock): class ResponseMock: status_code = 401 text = 'foo' url = 'http://foo.bar.com' def raise_for_status(self): return False requests_get_mock.return_value = ResponseMock() api = PenthouseApi() with pytest.raises(PenthouseException): api.request_critical_css('/foo', 'css/test.css')
def test_base_url_error(self, settings): settings.PENTHOUSE_URL = None api = PenthouseApi() with pytest.raises(PenthouseException): api.base_url
def test_base_url(self, settings): settings.PENTHOUSE_URL = 'http://foobar:3000/' api = PenthouseApi() assert api.base_url == 'http://foobar:3000/'