Example #1
0
    def test_when_password_is_set_we_ignore_hash(self, mocker):
        client = mocker.Mock()
        client.get.return_value = http.Response(200, '{"new": "data"}')
        p_mock = mocker.patch.object(user, 'update_password')
        p_mock.return_value = True
        h_mock = mocker.patch.object(user, 'update_password_hash')

        user.sync(dict(old='data'), client, '/path',
                  dict(username='******', password='******', password_hash='hash'),
                  False)

        p_mock.assert_called_once()
        h_mock.assert_not_called()
Example #2
0
    def test_disabled_current_object_present_check(self, mocker):
        client = mocker.Mock()
        client.get.return_value = http.Response(200, '{"current": "data"}')
        client.delete.return_value = http.Response(204, '')

        changed, object = user.sync({}, 'disabled', client, '/path', {}, True)
        assert changed is True
        assert object is not None
        client.delete.assert_not_called()
Example #3
0
    def test_no_current_object_check(self, mocker):
        client = mocker.Mock()
        client.get.return_value = http.Response(200, '{"new": "data"}')

        changed, object = user.sync(None, 'disabled', client, '/path',
                                    {'my': 'data'}, True)

        assert changed is True
        assert {'my': 'data'} == object
        client.put.assert_not_called()
Example #4
0
    def test_no_current_object_check(self, mocker):
        client = mocker.Mock()
        client.get.return_value = http.Response(200, '{"new": "data"}')

        changed, result = user.sync(None, client, '/path',
                                    {'password_hash': 'data'}, True)

        assert changed is True
        assert {} == result
        client.put.assert_not_called()
Example #5
0
    def test_no_current_object(self, mocker):
        client = mocker.Mock()
        client.get.return_value = http.Response(200, '{"new": "data"}')
        client.put.return_value = http.Response(201, '')

        changed, result = user.sync(None, client, '/path',
                                    {'password': '******'}, False)

        assert changed is True
        assert {'new': 'data'} == result
        client.put.assert_called_once_with('/path', {'password': '******'})
Example #6
0
    def test_password_hash_update_check_mode(self, mocker):
        client = mocker.Mock()
        client.get.return_value = http.Response(200, '{"new": "data"}')
        mock = mocker.patch.object(user, 'update_password_hash')
        mock.return_value = True

        changed, result = user.sync(
            dict(old='data'), client, '/path',
            dict(username='******', password_hash='pass'), True)

        assert changed is True
        assert dict(old='data', username='******') == result
        mock.assert_called_once()
Example #7
0
    def test_current_object_does_not_differ_check(self, mocker):
        client = mocker.Mock()

        changed, object = user.sync(
            {'my': 'data'},
            'present',
            client,
            '/path',
            {'my': 'data'},
            True,
        )

        assert changed is False
        assert {'my': 'data'} == object
        client.put.assert_not_called()
Example #8
0
    def test_state_update_check_mode(self, mocker):
        client = mocker.Mock()
        client.get.return_value = http.Response(200, '{"new": "data"}')
        p_mock = mocker.patch.object(user, 'update_password')
        g_mock = mocker.patch.object(user, 'update_groups')
        s_mock = mocker.patch.object(user, 'update_state')
        s_mock.return_value = True

        changed, result = user.sync(dict(disabled=True), client, '/path',
                                    dict(disabled=False), True)

        assert changed is True
        assert dict(disabled=False) == result
        p_mock.assert_not_called()
        g_mock.assert_not_called()
        s_mock.assert_called_once()
Example #9
0
    def test_groups_update(self, mocker):
        client = mocker.Mock()
        client.get.return_value = http.Response(200, '{"new": "data"}')
        p_mock = mocker.patch.object(user, 'update_password')
        g_mock = mocker.patch.object(user, 'update_groups')
        g_mock.return_value = False
        s_mock = mocker.patch.object(user, 'update_state')

        changed, result = user.sync(dict(groups=['a']), client, '/path',
                                    dict(groups=['b']), False)

        assert changed is False
        assert dict(new='data') == result
        p_mock.assert_not_called()
        g_mock.assert_called_once()
        s_mock.assert_not_called()
Example #10
0
    def test_password_update_check_mode(self, mocker):
        client = mocker.Mock()
        client.get.return_value = http.Response(200, '{"new": "data"}')
        p_mock = mocker.patch.object(user, 'update_password')
        p_mock.return_value = False
        g_mock = mocker.patch.object(user, 'update_groups')
        s_mock = mocker.patch.object(user, 'update_state')

        changed, result = user.sync(dict(old='data'), client, '/path',
                                    dict(username='******', password='******'),
                                    True)

        assert changed is False
        assert dict(old='data', username='******') == result
        p_mock.assert_called_once()
        g_mock.assert_not_called()
        s_mock.assert_not_called()