Example #1
0
 def setUp(self):
     kwargs = {
         'host': '127.0.0.1',
         'port': 6666,
         'timeout': 10,
         'request': '{}',
     }
     self.miner = Miner(**kwargs)
Example #2
0
    def test_init_args_valid(self):
        """Инициализация c допустимыми параметрами
        """
        miner = Miner(**self.kwargs)

        # Начальный флаг ошибки всегда False
        self.assertEqual(miner.error, False)
Example #3
0
 def setUp(self):
     kwargs = {
         'host': '127.0.0.1',
         'port': 6666,
         'timeout': 10,
         'request': '{"command": "get_status"}',
     }
     self.miner = Miner(**kwargs)
Example #4
0
class MinerSetUpTest(unittest.TestCase):
    """Тестирование установки
    параметров класса Miner
    """
    def setUp(self):
        kwargs = {
            'host': '127.0.0.1',
            'port': 6666,
            'timeout': 10,
            'request': '{}',
        }
        self.miner = Miner(**kwargs)

    def test_error_flag_valid(self):
        """Допустимый флаг ошибки
        """
        self.miner.error = True
        self.assertEqual(self.miner.error, True)

    def test_error_flag_not_bool(self):
        """Флаг ошибки не типа bool
        """
        with self.assertRaises(ValueError):
            self.miner.error = 'True'

    def test_host_valid(self):
        """Допустимый адрес
        """
        self.miner.error = True
        self.miner.host = '127.0.0.1'
        self.assertEqual(self.miner.host, '127.0.0.1')

        # Флаг ошибки должен быть сброшен
        self.assertEqual(self.miner.error, False)

    def test_host_common_ip(self):
        """ Адрес - общественный ip
        """
        with self.assertRaises(ValueError):
            self.miner.host = '8.8.8.8'

    def test_host_dns(self):
        """Адрес - DNS имя
        """
        with self.assertRaises(ValueError):
            self.miner.host = 'google.com'

    def test_port_valid(self):
        """Допустимый порт
        """
        self.miner.error = True
        self.miner.port = 6666
        self.assertEqual(self.miner.port, 6666)

        # Флаг ошибки должен быть сброшен
        self.assertEqual(self.miner.error, False)

    def test_port_max(self):
        """Номер порта больше допустимого
        """
        with self.assertRaises(ValueError):
            self.miner.port = 65536

    def test_port_min(self):
        """Номер порта меньше допустимого
        """
        with self.assertRaises(ValueError):
            self.miner.port = 0

    def test_timeout_valid(self):
        """Допустимый таймаут
        """
        self.miner.error = True
        self.miner.timeout = 10
        self.assertEqual(self.miner.timeout, 10)

        # Флаг ошибки должен быть сброшен
        self.assertEqual(self.miner.error, False)

    def test_timeout_max(self):
        """Таймаут больше допустимого
        """
        with self.assertRaises(ValueError):
            self.miner.timeout = 61

    def test_timeout_min(self):
        """Таймаут меньше допустимого
        """
        with self.assertRaises(ValueError):
            self.miner.timeout = 0

    def test_request_valid_str(self):
        """Допустимый формат запроса в виде строки
        """
        self.miner.error = True
        self.miner.request = '{"key": "value"}'
        self.assertDictEqual(
            self.miner.request,
            json.loads('{"key": "value"}'),
        )

        # Флаг ошибки должен быть сброшен
        self.assertEqual(self.miner.error, False)

    def test_request_valid_dict(self):
        """Допустимый формат запроса в виде словаря
        """
        self.miner.error = True
        self.miner.request = {"key": "value"}
        self.assertDictEqual(
            self.miner.request,
            {"key": "value"},
        )

        # Флаг ошибки должен быть сброшен
        self.assertEqual(self.miner.error, False)

    def test_request_invalid(self):
        """Неверный формат запроса
        """
        with self.assertRaises(ValueError):
            self.miner.request = 'some: invalid request'

    def test_set_error_response_mehod(self):
        """Метод errorResponce устнавливает
        правильные значения атрибутов
        """
        self.miner.errorResponse(
            ValueError("invalid format"),
            "invalid value",
        )

        invalid_response = {
            'error_type': 'ValueError',
            'error_data': 'invalid value',
            'error_message': 'invalid format',
        }
        self.assertDictEqual(self.miner.response, invalid_response)
        self.assertEqual(self.miner.error, True)

    def test_response_valid_str(self):
        """Допустимый формат ответа в виде строки
        """
        self.miner.error = True
        self.miner.response = '{"key": "value"}'
        self.assertDictEqual(
            self.miner.response,
            json.loads('{"key": "value"}'),
        )

        # Флаг ошибки должен быть сброшен
        self.assertEqual(self.miner.error, False)

    def test_response_valid_dict(self):
        """Допустимый формат ответа в виде словаря
        """
        self.miner.error = True
        self.miner.response = {"key": "value"}
        self.assertDictEqual(
            self.miner.response,
            {"key": "value"},
        )

        # Флаг ошибки должен быть сброшен
        self.assertEqual(self.miner.error, False)

    def test_responce_invalid(self):
        """Неверный формат ответа
        """
        self.miner.response = 'some invalid response'

        invalid_miner_response = {
            'error_type': 'JSONDecodeError',
            'error_data': 'some invalid response',
            'error_message': 'Expecting value: line 1 column 1 (char 0)',
        }
        self.assertDictEqual(self.miner.response, invalid_miner_response)
        self.assertEqual(self.miner.error, True)
Example #5
0
 def test_init_request_invalid(self):
     """Недопустимый запрос при инициализации
     """
     self.kwargs['request'] = 'some: invalid request'
     with self.assertRaises(ValueError):
         Miner(**self.kwargs)
Example #6
0
 def test_init_timeout_invalid(self):
     """Недопустимый таймаут при инициализации
     """
     self.kwargs['timeout'] = 0
     with self.assertRaises(ValueError):
         Miner(**self.kwargs)
Example #7
0
 def test_init_port_invalid(self):
     """Недопустимый порт при инициализации
     """
     self.kwargs['port'] = 0
     with self.assertRaises(ValueError):
         Miner(**self.kwargs)
Example #8
0
 def test_init_host_invalid(self):
     """Недопустимый адрес при инициализации
     """
     self.kwargs['host'] = '8.8.8.8'
     with self.assertRaises(ValueError):
         Miner(**self.kwargs)
Example #9
0
 def test_empty_init(self):
     """Инициализация без параметров
     """
     with self.assertRaises(TypeError):
         Miner()