def check_credentials(self): api = NYT(self.key_input) if api.api_key_valid(): self.save_credentials() else: api = None self.api = api
def api_key_updated(self, is_valid): self.api_key_is_valid = is_valid self.enable_controls() self.update_validity_icon() if is_valid: self.nyt_api = NYT( self.api_key) # Set the NYT API object, if key is valid.
def check_api_key(self, api_key): nyt_api = NYT(api_key) key_valid_flag = nyt_api.check_api_key() if key_valid_flag: self.api_key = api_key self.api_key_updated(key_valid_flag)
def setUp(self): # NamedTemporaryFile actually creates and opens the file. On windows you can not open it a second time. # More: https://docs.python.org/3.8/library/tempfile.html#tempfile.NamedTemporaryFile self.tmp = tempfile.NamedTemporaryFile(delete=False) self.tmp.close() os.unlink(self.tmp.name) self.nyt = NYT(self.API_KEY) self.nyt.cache_path = self.tmp.name
def test_url_errors(self): nyt = NYT(self.API_KEY) nyt.on_no_connection = MagicMock() c = nyt.search('slovenia') self.assertIsNone(c) self.assertEqual(nyt.on_no_connection.call_count, 1) nyt.on_no_connection = None with self.assertRaises(URLError): nyt.search('slovenia')
def api_key_updated(self, is_valid): self.api_key_is_valid = is_valid self.enable_controls() if is_valid: self.api_key_valid_label.setPixmap( QPixmap(_i("valid.svg")).scaled(15, 15, QtCore.Qt.KeepAspectRatio)) self.nyt_api = NYT( self.api_key) # Set the NYT API object, if key is valid. else: self.api_key_valid_label.setPixmap( QPixmap(_i("invalid.svg")).scaled(15, 15, QtCore.Qt.KeepAspectRatio))
def test_error_callbacks(self): n_calls_rate_limit = 0 n_calls_error = 0 def on_rate_limit(): nonlocal n_calls_rate_limit n_calls_rate_limit += 1 def on_error(e): nonlocal n_calls_error n_calls_error += 1 nyt = NYT(self.API_KEY) nyt.on_rate_limit = on_rate_limit nyt.on_error = on_error # both callback, should call rate limit nyt.search('slovenia') self.assertEqual(n_calls_rate_limit, 1) self.assertEqual(n_calls_error, 0) # only error callback, should call it n_calls_rate_limit = 0 n_calls_error = 0 nyt.on_rate_limit = None nyt.search('slovenia') self.assertEqual(n_calls_rate_limit, 0) self.assertEqual(n_calls_error, 1) # no callback n_calls_rate_limit = 0 n_calls_error = 0 nyt.on_error = None nyt.on_rate_limit = None nyt.search('slovenia') self.assertEqual(n_calls_rate_limit, 0) self.assertEqual(n_calls_error, 0)
def setUp(self): self.nyt = NYT(self.API_KEY)
def test_error_empty_result(self): nyt = NYT(self.API_KEY) c = nyt.search('slovenia', max_docs=25) self.assertIsNone(c)
def setUp(self): self.tmp = tempfile.NamedTemporaryFile(delete=False) os.remove(self.tmp.name) self.nyt = NYT(self.API_KEY) self.nyt.cache_path = self.tmp.name
def check_api_key(self, api_key): nyt_api = NYT(api_key) self.api_key = api_key self.api_key_updated(nyt_api.check_api_key())