예제 #1
0
    def test_write_fall_daylight_time_mode2_prop__should_copy_all_fields_to_a_device(
            self):
        def se(parameters, buffer_size):
            choices = {
                'WeekOfMonth1': 2,
                'WeekOfMonth2': 3,
                'WeekOfMonth3': 4,
                'WeekOfMonth4': 5,
                'WeekOfMonth5': 6,
                'WeekOfMonth6': 2,
                'WeekOfMonth7': 3,
                'WeekOfMonth8': 4,
                'WeekOfMonth9': 5,
                'WeekOfMonth10': 6,
            }
            return {parameters[0]: choices[parameters[0]]}

        sdk = Mock()
        obj = DeviceParameters(sdk, ZK400)
        sdk2 = Mock()
        sdk2.get_device_param.side_effect = se
        test_obj = DaylightSavingMomentMode2(sdk2, False, 4096)

        obj.fall_daylight_time_mode2 = test_obj

        sdk.set_device_param.assert_has_calls((
            call(parameters={'WeekOfMonth6': '2'}),
            call(parameters={'WeekOfMonth7': '3'}),
            call(parameters={'WeekOfMonth8': '4'}),
            call(parameters={'WeekOfMonth9': '5'}),
            call(parameters={'WeekOfMonth10': '6'}),
        ))
예제 #2
0
    def test_write_reboot_writeonly_prop__if_write_wrong_value__should_raise_error(
            self, value):
        sdk = Mock()
        sdk.set_device_param.return_value = None
        obj = DeviceParameters(sdk, ZK400)

        with pytest.raises(TypeError):
            obj.reboot = value
예제 #3
0
    def test_write_datetime_prop__should_correctly_calculate_datetime(self):
        sdk = Mock()
        sdk.set_device_param.return_value = None
        obj = DeviceParameters(sdk, ZK400)

        obj.datetime = datetime(2010, 10, 26, 20, 54, 55)

        sdk.set_device_param.assert_called_once_with(
            parameters={'DateTime': '347748895'})
예제 #4
0
    def test_write_fall_daylight_time_mode1_prop__should_return_object(self):
        sdk = Mock()
        sdk.set_device_param.return_value = None
        obj = DeviceParameters(sdk, ZK400)
        test_obj = DaylightSavingMomentMode1(1, 2, 3, 4)

        obj.fall_daylight_time_mode1 = test_obj

        sdk.set_device_param.assert_called_once_with(
            parameters={'StandardTime': '1-2-3-4'})
예제 #5
0
    def test_write_reboot_writeonly_prop__if_write_1__should_set_value_on_a_device(
            self):
        sdk = Mock()
        sdk.set_device_param.return_value = None
        obj = DeviceParameters(sdk, ZK400)

        obj.reboot = True

        sdk.set_device_param.assert_called_once_with(
            parameters={'Reboot': '1'})
예제 #6
0
    def test_write_readonly_property__for_read_only_properties__should_raise_error(
            self, prop, param, prop_type, sdk_value, prop_value):
        sdk = Mock()
        obj = DeviceParameters(sdk, ZK400)

        with pytest.raises(AttributeError):
            setattr(obj, prop, prop_value)
예제 #7
0
    def test_read_datetime_prop__should_correctly_calculate_datetime(self):
        sdk = Mock()
        sdk.get_device_param.return_value = {'DateTime': '347748895'}
        obj = DeviceParameters(sdk, ZK400)

        res = obj.datetime

        assert res == datetime(2010, 10, 26, 20, 54, 55)
예제 #8
0
    def test_write_readwrite_property__if_wrong_value_passed__should_raise_error(
            self, prop, param, prop_type, sdk_value, prop_value):
        sdk = Mock()
        sdk.set_device_param.return_value = None
        obj = DeviceParameters(sdk, ZK400)

        with pytest.raises((ValueError, TypeError)):
            setattr(obj, prop, prop_value)
예제 #9
0
    def test_read_readonly_property__if_wrong_value_returned__should_raise_error(
            self, prop, param, prop_type, sdk_value, prop_value):
        sdk = Mock()
        sdk.get_device_param.return_value = {param: sdk_value}
        obj = DeviceParameters(sdk, ZK400)

        with pytest.raises((TypeError, ValueError)):
            _ = getattr(obj, prop)
예제 #10
0
    def test_write_readwrite_property__should_set_value_on_a_device(
            self, prop, param, prop_type, sdk_value, prop_value):
        sdk = Mock()
        sdk.set_device_param.return_value = None
        obj = DeviceParameters(sdk, ZK400)

        setattr(obj, prop, prop_value)

        sdk.set_device_param.assert_called_once_with(
            parameters={param: sdk_value})
예제 #11
0
    def test_read_fall_daylight_time_mode2_prop__should_return_object(self):
        sdk = Mock()
        obj = DeviceParameters(sdk, ZK400)

        res = obj.fall_daylight_time_mode2

        sdk.get_device_param.assert_not_called()
        assert isinstance(res, DaylightSavingMomentMode2)
        assert res._sdk is sdk
        assert res.is_daylight is False
        assert res.buffer_size == 4096
예제 #12
0
    def test_read_readwrite_property__should_return_value_of_correct_type(
            self, prop, param, prop_type, sdk_value, prop_value):
        sdk = Mock()
        sdk.get_device_param.return_value = {param: sdk_value}
        obj = DeviceParameters(sdk, ZK400)

        res = getattr(obj, prop)

        sdk.get_device_param.assert_called_once_with(parameters=(param, ),
                                                     buffer_size=4096)
        assert isinstance(res, prop_type)
        assert res == prop_value
예제 #13
0
    def test_read_fall_daylight_time_mode1_prop__should_return_object(self):
        sdk = Mock()
        sdk.get_device_param.return_value = {'StandardTime': '1-2-3-4'}
        obj = DeviceParameters(sdk, ZK400)

        res = obj.fall_daylight_time_mode1

        sdk.get_device_param.assert_called_once_with(
            parameters=('StandardTime', ), buffer_size=4096)
        assert isinstance(res, DaylightSavingMomentMode1)
        assert res.month == 1
        assert res.day == 2
        assert res.hour == 3
        assert res.minute == 4
예제 #14
0
    def test_read_reboot_writeonly_prop__should_raise_error(self):
        sdk = Mock()
        obj = DeviceParameters(sdk, ZK400)

        with pytest.raises(AttributeError):
            _ = obj.reboot
예제 #15
0
    def test_init__should_fill_attributes(self):
        sdk = Mock()
        obj = DeviceParameters(sdk, ZK400)

        assert obj._sdk is sdk
        assert obj.device_model == ZK400