Esempio n. 1
0
 def check_credentials(self):
     api = NYT(self.key_input)
     if api.api_key_valid():
         self.save_credentials()
     else:
         api = None
     self.api = api
Esempio n. 2
0
    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.
Esempio n. 3
0
    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)
Esempio n. 4
0
    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
Esempio n. 5
0
    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')
Esempio n. 6
0
    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))
Esempio n. 7
0
    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)
Esempio n. 8
0
 def setUp(self):
     self.nyt = NYT(self.API_KEY)
Esempio n. 9
0
 def test_error_empty_result(self):
     nyt = NYT(self.API_KEY)
     c = nyt.search('slovenia', max_docs=25)
     self.assertIsNone(c)
Esempio n. 10
0
 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
Esempio n. 11
0
 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())