def test_netflix_token_regex_err(self, mock_get_session):
     mock_error_result = NetflixFastMeasurementResult(
         id=("1"),
         download_rate=None,
         download_rate_unit=None,
         download_size=None,
         download_size_unit=None,
         asn=None,
         ip=None,
         isp=None,
         city=None,
         country=None,
         urlcount=self.nft.urlcount,
         reason_terminated=None,
         errors=[
             Error(
                 key="netflix-token-regex",
                 description=NETFLIX_ERRORS.get("netflix-token-regex", ""),
                 traceback=
                 'This is an invalid script response, containing BRoken:"This is the token"',
             )
         ],
     )
     mock_session = mock.MagicMock()
     mock_resp = mock.MagicMock()
     mock_resp.text = '<script src="(This is the script)">'
     mock_script_resp = mock.MagicMock()
     mock_script_resp.text = (
         'This is an invalid script response, containing BRoken:"This is the token"'
     )
     mock_session.get.side_effect = [mock_resp, mock_script_resp]
     mock_get_session.return_value = mock_session
     assert self.nft._get_fast_result() == mock_error_result
 def test_netflix_script_response_err(self, mock_get_session):
     mock_error_result = NetflixFastMeasurementResult(
         id=("1"),
         download_rate=None,
         download_rate_unit=None,
         download_size=None,
         download_size_unit=None,
         asn=None,
         ip=None,
         isp=None,
         city=None,
         country=None,
         urlcount=self.nft.urlcount,
         reason_terminated=None,
         errors=[
             Error(
                 key="netflix-script-response",
                 description=NETFLIX_ERRORS.get("netflix-script-response",
                                                ""),
                 traceback="Failed to pretend to establish a new connection",
             )
         ],
     )
     mock_session = mock.MagicMock()
     mock_resp = mock.MagicMock()
     mock_resp.text = '<script src="(This is the script)">'
     mock_session.get.side_effect = [
         mock_resp,
         ConnectionError("Failed to pretend to establish a new connection"),
     ]
     mock_get_session.return_value = mock_session
     assert self.nft._get_fast_result() == mock_error_result
 def test_netflix_regex_err(self, mock_get_session):
     mock_error_result = NetflixFastMeasurementResult(
         id=("1"),
         download_rate=None,
         download_rate_unit=None,
         download_size=None,
         download_size_unit=None,
         asn=None,
         ip=None,
         isp=None,
         city=None,
         country=None,
         urlcount=self.nft.urlcount,
         reason_terminated=None,
         errors=[
             Error(
                 key="netflix-script-regex",
                 description=NETFLIX_ERRORS.get("netflix-script-regex", ""),
                 traceback=
                 '<Bript Brc="(This should be impossible to find)">',
             )
         ],
     )
     mock_session = mock.MagicMock()
     mock_resp = mock.MagicMock()
     mock_resp.text = '<Bript Brc="(This should be impossible to find)">'
     mock_session.get.side_effect = [mock_resp]
     mock_get_session.return_value = mock_session
     assert self.nft._get_fast_result() == mock_error_result
 def test_netflix_connection_err(self, mock_get_session):
     mock_error_result = NetflixFastMeasurementResult(
         id=("1"),
         download_rate=None,
         download_rate_unit=None,
         download_size=None,
         download_size_unit=None,
         asn=None,
         ip=None,
         isp=None,
         city=None,
         country=None,
         urlcount=self.nft.urlcount,
         reason_terminated=None,
         errors=[
             Error(
                 key="netflix-connection",
                 description=NETFLIX_ERRORS.get("netflix-connection", ""),
                 traceback="Failed to pretend to establish a new connection",
             )
         ],
     )
     mock_session = mock.MagicMock()
     mock_resp = mock.MagicMock()
     mock_resp.text = '<script src="(This is the script)">'
     mock_script_resp = mock.MagicMock()
     mock_script_resp.text = (
         'This is the script response, containing token:"This is the token"'
     )
     mock_api_resp = mock.MagicMock()
     mock_api_resp.json.side_effect = [{
         "client": {},
         "targets": [{
             "url": "https://afakeurl.1.notreal.net/speedtest",
             "location": {
                 "city": "Foreign City One",
                 "country": "Foreign Country One",
             },
         }],
     }]
     mock_session.get.side_effect = [
         mock_resp,
         mock_script_resp,
         mock_api_resp,
         ConnectionError("Failed to pretend to establish a new connection"),
     ]
     mock_get_session.return_value = mock_session
     self.nft.thread_results = [
         {
             "index": i,
             "elapsed_time": None,
             "download_size": 0,
             "download_rate": 0,
             "url": None,
             "location": None,
         } for i in range(
             self.nft.urlcount)  # Generate thread results dict structure
     ]
     assert self.nft._get_fast_result() == mock_error_result
 def test_netflix_api_parse_targets_err(self, mock_get_session):
     mock_error_result = NetflixFastMeasurementResult(
         id=("1"),
         download_rate=None,
         download_rate_unit=None,
         download_size=None,
         download_size_unit=None,
         asn=None,
         ip=None,
         isp=None,
         city=None,
         country=None,
         urlcount=self.nft.urlcount,
         reason_terminated=None,
         errors=[
             Error(
                 key="netflix-api-parse",
                 description=NETFLIX_ERRORS.get("netflix-api-parse", ""),
                 traceback="0",
             )
         ],
     )
     mock_session = mock.MagicMock()
     mock_resp = mock.MagicMock()
     mock_resp.text = '<script src="(This is the script)">'
     mock_script_resp = mock.MagicMock()
     mock_script_resp.text = (
         'This is the script response, containing token:"This is the token"'
     )
     mock_api_resp = mock.MagicMock()
     mock_api_resp.json = mock.MagicMock()
     mock_api_resp.json.side_effect = [{
         "targets": {
             "correct_values": "are not in here >:)"
         }
     }]
     mock_session.get.side_effect = [
         mock_resp, mock_script_resp, mock_api_resp
     ]
     mock_get_session.return_value = mock_session
     assert self.nft._get_fast_result() == mock_error_result
 def test_netflix_api_json_err(self, mock_get_session):
     mock_error_result = NetflixFastMeasurementResult(
         id=("1"),
         download_rate=None,
         download_rate_unit=None,
         download_size=None,
         download_size_unit=None,
         asn=None,
         ip=None,
         isp=None,
         city=None,
         country=None,
         urlcount=self.nft.urlcount,
         reason_terminated=None,
         errors=[
             Error(
                 key="netflix-api-json",
                 description=NETFLIX_ERRORS.get("netflix-api-json", ""),
                 traceback=
                 "Json Decode screwed up :(: line 1 column 1 (char 0)",
             )
         ],
     )
     mock_session = mock.MagicMock()
     mock_resp = mock.MagicMock()
     mock_resp.text = '<script src="(This is the script)">'
     mock_script_resp = mock.MagicMock()
     mock_script_resp.text = (
         'This is the script response, containing token:"This is the token"'
     )
     mock_api_resp = mock.MagicMock()
     mock_api_resp.json.side_effect = json.decoder.JSONDecodeError(
         "Json Decode screwed up :(", "{BuSTED_JSON ::: asdf}", 0)
     mock_session.get.side_effect = [
         mock_resp, mock_script_resp, mock_api_resp
     ]
     mock_get_session.return_value = mock_session
     assert self.nft._get_fast_result() == mock_error_result