Esempio n. 1
0
 def test_writes_new_token_if_re_authenticating(self, mock_auth_resp_url,
                                                mock_open, mock_get):
     mock_auth_resp_url.return_value = (
         f'{FAKE_API_URL}/?code=banana&state={FAKE_STATE}')
     send_request(self.sesh, self.prefs, self.opts, TEMP_FILE)
     prefs = load_prefs(TEMP_FILE)
     assert prefs['oauth2']['access_token'] == NEW_ACCESS_TOKEN
Esempio n. 2
0
 def test_re_authentication_allows_webbrowser_to_fail(
         self, mock_auth_resp_url, mock_open, mock_get):
     mock_open.side_effect = explode(NotADirectoryError)
     mock_auth_resp_url.return_value = (
         f'{FAKE_API_URL}/?code=banana&state={FAKE_STATE}')
     send_request(self.sesh, self.prefs, self.opts, TEMP_FILE)
     assert self.sesh.token['access_token'] == NEW_ACCESS_TOKEN
Esempio n. 3
0
 def test_if_method_isnt_off_it_blows_up(self, mock_get):
     self.opts['<method>'] = 'banana'
     try:
         send_request(self.sesh, self.prefs, self.opts, TEMP_FILE)
     except APIBuddyException as err:
         assert 'went wrong' in err.title
         assert 'http method' in err.message
     else:
         assert False
Esempio n. 4
0
 def test_checks_internet_connection(self):
     try:
         send_request(
             self.sesh,
             self.prefs,
             self.opts,
             TEMP_FILE,
         )
     except ConnectionException:
         assert True
     else:
         assert False
Esempio n. 5
0
 def test_exits_gracefully_on_keyboard_interrupt(self):
     try:
         send_request(
             self.sesh,
             self.prefs,
             self.opts,
             TEMP_FILE,
         )
     except SystemExit as err:
         assert err.code == 130
     else:
         assert False
Esempio n. 6
0
 def test_can_timeout_on_internet_connection(self):
     try:
         send_request(
             self.sesh,
             self.prefs,
             self.opts,
             TEMP_FILE,
         )
     except TimeoutException:
         assert True
     else:
         assert False
Esempio n. 7
0
 def test_uses_api_version_if_given(self, mock_get):
     params = {'fake_param': 'fake_value'}
     self.prefs['api_version'] = FAKE_API_VERSION
     self.opts['<params>'] = params
     mock_resp = send_request(self.sesh, self.prefs, self.opts, TEMP_FILE)
     assert (mock_resp.url ==
             f'{FAKE_API_URL}/{FAKE_API_VERSION}/{FAKE_ENDPOINT}')
Esempio n. 8
0
 def test_adds_json_to_requests(self, mock_get):
     data = '{"dis":"json"}'
     self.opts['<data>'] = data
     for method in HTTP_METHODS:
         self.opts['<method>'] = method
         mock_resp = send_request(self.sesh, self.prefs, self.opts,
                                  TEMP_FILE)
         if method == GET:
             assert mock_resp.data is None
         else:
             assert mock_resp.data == data
Esempio n. 9
0
 def test_can_print_request_details(self, mock_get):
     self.opts['<params>'] = {
         'name': 'george-costanza',
         'occupations': [
             'architect',
             'marine-biologist',
         ],
         'has_hair': 'false',
     }
     self.opts['<data>'] = {
         'name': 'Cosmo Kramer',
         'occupations': [
             'Bagelrista',
             'Car Parker',
         ],
         'has_hair': True,
     }
     self.opts['<method>'] = 'post'
     self.prefs['verboseness']['request'] = True
     # should not raise any errors
     send_request(self.sesh, self.prefs, self.opts, TEMP_FILE)
Esempio n. 10
0
 def test_re_authenticates_if_token_is_expired(self, mock_auth_resp_url,
                                               mock_open, mock_get):
     mock_auth_resp_url.return_value = (
         f'{FAKE_API_URL}/?code=banana&state={FAKE_STATE}')
     send_request(self.sesh, self.prefs, self.opts, TEMP_FILE)
     assert self.sesh.token['access_token'] == NEW_ACCESS_TOKEN
Esempio n. 11
0
 def test_skips_authentication_if_token_is_valid(self, mock_authenticate,
                                                 mock_get):
     mock_authenticate.side_effect = explode()  # should not get called
     send_request(self.sesh, self.prefs, self.opts, TEMP_FILE)
     assert self.sesh.token['access_token'] == FAKE_ACCESS_TOKEN
Esempio n. 12
0
 def test_honors_verify_prefs(self, mock_get):
     mock_resp = send_request(self.sesh, self.prefs, self.opts, TEMP_FILE)
     assert mock_resp.verify is True
     self.prefs['verify_ssl'] = False
     mock_resp = send_request(self.sesh, self.prefs, self.opts, TEMP_FILE)
     assert mock_resp.verify is False
Esempio n. 13
0
 def test_uses_params(self, mock_get):
     params = {'fake_param': 'fake_value'}
     self.opts['<params>'] = params
     mock_resp = send_request(self.sesh, self.prefs, self.opts, TEMP_FILE)
     assert mock_resp.params == params
Esempio n. 14
0
 def test_adds_endpoint_to_api_url(self, mock_get):
     mock_resp = send_request(self.sesh, self.prefs, self.opts, TEMP_FILE)
     assert mock_resp.url == f'{FAKE_API_URL}/{FAKE_ENDPOINT}'
Esempio n. 15
0
 def test_checks_method(self, mock_get):
     for method in HTTP_METHODS:
         self.opts['<method>'] = method
         resp = send_request(self.sesh, self.prefs, self.opts, TEMP_FILE)
         assert resp.json()[method] is True
Esempio n. 16
0
 def test_returns_a_response(self, mock_get):
     mock_resp = send_request(self.sesh, self.prefs, self.opts, TEMP_FILE)
     assert mock_resp.status_code == 200