示例#1
0
    def test_present__update(self):
        # test=True
        with patch.dict(postgres_group.__opts__, {'test': True}):
            ret = postgres_group.present('foo', login=True, replication=False)
            self.assertEqual(
                ret,
                {'comment': 'Group foo is set to be updated',
                 'changes': {'foo': {'login': True}}, 'name': 'foo', 'result': None}
            )
            self.assertEqual(SALT_STUB['postgres.group_update'].call_count, 0)

        # test=False
        ret = postgres_group.present('foo', login=True, replication=False)
        self.assertEqual(
            ret,
            {'comment': 'The group foo has been updated',
             'changes': {'foo': {'login': True}}, 'name': 'foo', 'result': True}
        )
        SALT_STUB['postgres.group_update'].assert_called_once_with(superuser=None,
                                                                   replication=False,
                                                                   encrypted=True,
                                                                   runas=None,
                                                                   inherit=None,
                                                                   rolepassword=None,
                                                                   port=None,
                                                                   groupname='foo',
                                                                   host=None,
                                                                   createroles=None,
                                                                   user=None,
                                                                   groups=None,
                                                                   maintenance_db=None,
                                                                   login=True,
                                                                   password=None,
                                                                   createdb=None)
示例#2
0
def test_present_create_basic(mocks, db_args):
    assert postgres_group.present("groupname") == {
        "name": "groupname",
        "result": True,
        "changes": {
            "groupname": "Present"
        },
        "comment": "The group groupname has been created",
    }
    mocks["postgres.role_get"].assert_called_once_with("groupname",
                                                       return_password=True,
                                                       **db_args)
    mocks["postgres.group_create"].assert_called_once_with(
        groupname="groupname",
        createdb=None,
        createroles=None,
        encrypted="md5",
        superuser=None,
        login=None,
        inherit=None,
        replication=None,
        rolepassword=None,
        groups=None,
        **db_args)
    mocks["postgres.group_update"].assert_not_called()
示例#3
0
def test_present_update_password_no_check(mocks, existing_group, md5_pw,
                                          db_args):
    mocks["postgres.role_get"].return_value = existing_group

    assert postgres_group.present("groupname",
                                  password="******",
                                  encrypted=True,
                                  refresh_password=True) == {
                                      "name": "groupname",
                                      "result": True,
                                      "changes": {
                                          "groupname": {
                                              "password": True
                                          }
                                      },
                                      "comment":
                                      "The group groupname has been updated",
                                  }
    mocks["postgres.role_get"].assert_called_once_with("groupname",
                                                       return_password=False,
                                                       **db_args)
    mocks["postgres.group_create"].assert_not_called()
    mocks["postgres.group_update"].assert_called_once_with(
        groupname="groupname",
        createdb=None,
        createroles=None,
        encrypted=True,
        superuser=None,
        login=None,
        inherit=None,
        replication=None,
        rolepassword=md5_pw,
        groups=None,
        **db_args)
示例#4
0
def test_present_create_md5_password_default_encrypted(mocks, monkeypatch,
                                                       md5_pw, db_args):
    monkeypatch.setattr(postgres, "_DEFAULT_PASSWORDS_ENCRYPTION", True)

    assert postgres_group.present("groupname", password="******") == {
        "name": "groupname",
        "result": True,
        "changes": {
            "groupname": "Present"
        },
        "comment": "The group groupname has been created",
    }
    mocks["postgres.role_get"].assert_called_once()
    mocks["postgres.group_create"].assert_called_once_with(
        groupname="groupname",
        createdb=None,
        createroles=None,
        encrypted=True,
        superuser=None,
        login=None,
        inherit=None,
        replication=None,
        rolepassword=md5_pw,
        groups=None,
        **db_args)
    mocks["postgres.group_update"].assert_not_called()
示例#5
0
    def test_present__update(self):
        # test=True
        with patch.dict(OPTS, {'test': True}):
            ret = postgres_group.present('foo', login=True, replication=False)
            self.assertEqual(
                ret, {
                    'comment': 'Group foo is set to be updated',
                    'changes': {
                        'foo': {
                            'login': True
                        }
                    },
                    'name': 'foo',
                    'result': None
                })
            self.assertEqual(SALT_STUB['postgres.group_update'].call_count, 0)

        # test=False
        ret = postgres_group.present('foo', login=True, replication=False)
        self.assertEqual(
            ret, {
                'comment': 'The group foo has been updated',
                'changes': {
                    'foo': {
                        'login': True
                    }
                },
                'name': 'foo',
                'result': True
            })
        SALT_STUB['postgres.group_update'].assert_called_once_with(
            superuser=None,
            replication=False,
            encrypted=True,
            runas=None,
            inherit=None,
            rolepassword=None,
            port=None,
            groupname='foo',
            host=None,
            createroles=None,
            user=None,
            groups=None,
            maintenance_db=None,
            login=True,
            password=None,
            createdb=None)
示例#6
0
    def test_present__update(self):
        # test=True
        with patch.dict(postgres_group.__salt__, {'postgres.role_get': Mock(return_value={
                                                    'can create databases': False,
                                                    'can create roles': False,
                                                    'can login': False,
                                                    'can update system catalogs': False,
                                                    'connections': None,
                                                    'defaults variables': {},
                                                    'expiry time': None,
                                                    'inherits privileges': True,
                                                    'replication': False,
                                                    'superuser': False,
                                                 }),
                                                 'postgres.group_update': MagicMock()}):
            with patch.dict(postgres_group.__opts__, {'test': True}):
                ret = postgres_group.present('foo', login=True, replication=False)
                self.assertEqual(
                    ret,
                    {'comment': 'Group foo is set to be updated',
                     'changes': {'foo': {'login': True}}, 'name': 'foo', 'result': None}
                )
                self.assertEqual(self.salt_stub['postgres.group_update'].call_count, 0)

            # test=False
            ret = postgres_group.present('foo', login=True, replication=False)
            self.assertEqual(
                ret,
                {'comment': 'The group foo has been updated',
                 'changes': {'foo': {'login': True}}, 'name': 'foo', 'result': True}
            )
            self.salt_stub['postgres.group_update'].assert_called_once_with(superuser=None,
                                                                       replication=False,
                                                                       encrypted=True,
                                                                       runas=None,
                                                                       inherit=None,
                                                                       rolepassword=None,
                                                                       port=None,
                                                                       groupname='foo',
                                                                       host=None,
                                                                       createroles=None,
                                                                       user=None,
                                                                       groups=None,
                                                                       maintenance_db=None,
                                                                       login=True,
                                                                       password=None,
                                                                       createdb=None)
示例#7
0
    def test_present__no_update(self):
        # test=True
        with patch.dict(
                postgres_group.__salt__, {
                    'postgres.role_get':
                    Mock(
                        return_value={
                            'can create databases': False,
                            'can create roles': False,
                            'can login': False,
                            'can update system catalogs': False,
                            'connections': None,
                            'defaults variables': {},
                            'expiry time': None,
                            'inherits privileges': True,
                            'replication': False,
                            'superuser': False,
                        }),
                    'postgres.group_update':
                    MagicMock()
                }):
            with patch.dict(postgres_group.__opts__, {'test': True}):
                ret = postgres_group.present('foo',
                                             login=False,
                                             replication=False)
                self.assertEqual(
                    ret, {
                        'comment': 'Group foo is already present',
                        'changes': {},
                        'name': 'foo',
                        'result': True
                    })
                self.assertEqual(
                    self.salt_stub['postgres.group_update'].call_count, 0)

            # test=False
            ret = postgres_group.present('foo', login=False, replication=False)
            self.assertEqual(
                ret, {
                    'comment': 'Group foo is already present',
                    'changes': {},
                    'name': 'foo',
                    'result': True
                })
            self.assertEqual(
                self.salt_stub['postgres.group_update'].call_count, 0)
示例#8
0
    def test_present__creation(self):
        # test=True
        with patch.dict(
                postgres_group.__salt__, {
                    'postgres.role_get': Mock(return_value=None),
                    'postgres.group_create': MagicMock()
                }):
            with patch.dict(postgres_group.__opts__, {'test': True}):
                ret = postgres_group.present('foo')
                self.assertEqual(
                    ret, {
                        'comment': 'Group foo is set to be created',
                        'changes': {},
                        'name': 'foo',
                        'result': None
                    })
                self.assertEqual(
                    self.salt_stub['postgres.group_create'].call_count, 0)

            # test=False
            ret = postgres_group.present('foo')
            self.assertEqual(
                ret, {
                    'comment': 'The group foo has been created',
                    'changes': {},
                    'name': 'foo',
                    'result': True
                })
            self.salt_stub['postgres.group_create'].assert_called_once_with(
                superuser=None,
                replication=None,
                encrypted=True,
                runas=None,
                inherit=None,
                rolepassword=None,
                port=None,
                groupname='foo',
                host=None,
                createroles=None,
                user=None,
                groups=None,
                maintenance_db=None,
                login=None,
                password=None,
                createdb=None)
示例#9
0
    def test_present__no_update(self):
        # test=True
        with patch.dict(OPTS, {'test': True}):
            ret = postgres_group.present('foo', login=False, replication=False)
            self.assertEqual(
                ret,
                {'comment': 'Group foo is already present',
                 'changes': {}, 'name': 'foo', 'result': True}
            )
            self.assertEqual(SALT_STUB['postgres.group_update'].call_count, 0)

        # test=False
        ret = postgres_group.present('foo', login=False, replication=False)
        self.assertEqual(
            ret,
            {'comment': 'Group foo is already present',
             'changes': {}, 'name': 'foo', 'result': True}
        )
        self.assertEqual(SALT_STUB['postgres.group_update'].call_count, 0)
示例#10
0
    def test_present__no_update(self):
        # test=True
        with patch.dict(OPTS, {'test': True}):
            ret = postgres_group.present('foo', login=False, replication=False)
            self.assertEqual(
                ret,
                {'comment': 'Group foo is already present',
                 'changes': {}, 'name': 'foo', 'result': True}
            )
            self.assertEqual(SALT_STUB['postgres.group_update'].call_count, 0)

        # test=False
        ret = postgres_group.present('foo', login=False, replication=False)
        self.assertEqual(
            ret,
            {'comment': 'Group foo is already present',
             'changes': {}, 'name': 'foo', 'result': True}
        )
        self.assertEqual(SALT_STUB['postgres.group_update'].call_count, 0)
示例#11
0
    def test_present(self):
        """
        Test to ensure that the named group is present
        with the specified privileges.
        """
        name = "frank"

        ret = {"name": name, "changes": {}, "result": False, "comment": ""}

        mock_t = MagicMock(return_value=True)
        mock = MagicMock(return_value=None)
        with patch.dict(postgres_group.__salt__, {"postgres.role_get": mock, "postgres.group_create": mock_t}):
            with patch.dict(postgres_group.__opts__, {"test": True}):
                comt = "Group {0} is set to be created".format(name)
                ret.update({"comment": comt, "result": None})
                self.assertDictEqual(postgres_group.present(name), ret)

            with patch.dict(postgres_group.__opts__, {"test": False}):
                comt = "The group {0} has been created".format(name)
                ret.update({"comment": comt, "result": True})
                self.assertDictEqual(postgres_group.present(name), ret)
示例#12
0
def test_present_create_basic_test(mocks, db_args):
    assert postgres_group.present("groupname") == {
        "name": "groupname",
        "result": None,
        "changes": {},
        "comment": "Group groupname is set to be created",
    }
    mocks["postgres.role_get"].assert_called_once_with("groupname",
                                                       return_password=True,
                                                       **db_args)
    mocks["postgres.group_create"].assert_not_called()
    mocks["postgres.group_update"].assert_not_called()
示例#13
0
def test_present_md5_matches_prehashed(mocks, existing_group, md5_pw):
    existing_group["password"] = md5_pw
    mocks["postgres.role_get"].return_value = existing_group

    assert postgres_group.present("groupname", password=md5_pw, encrypted=True) == {
        "name": "groupname",
        "result": True,
        "changes": {},
        "comment": "Group groupname is already present",
    }
    mocks["postgres.role_get"].assert_called_once()
    mocks["postgres.group_create"].assert_not_called()
    mocks["postgres.group_update"].assert_not_called()
示例#14
0
def test_present_update_error(mocks, existing_group):
    existing_group["password"] = "******"
    mocks["postgres.role_get"].return_value = existing_group
    mocks["postgres.group_update"].return_value = False

    assert postgres_group.present("groupname", password="******", encrypted=True) == {
        "name": "groupname",
        "result": False,
        "changes": {},
        "comment": "Failed to update group groupname",
    }
    mocks["postgres.role_get"].assert_called_once()
    mocks["postgres.group_create"].assert_not_called()
    mocks["postgres.group_update"].assert_called_once()
示例#15
0
def test_present_create_basic_error(mocks, db_args):
    mocks["postgres.group_create"].return_value = False

    assert postgres_group.present("groupname") == {
        "name": "groupname",
        "result": False,
        "changes": {},
        "comment": "Failed to create group groupname",
    }
    mocks["postgres.role_get"].assert_called_once_with("groupname",
                                                       return_password=True,
                                                       **db_args)
    mocks["postgres.group_create"].assert_called_once()
    mocks["postgres.group_update"].assert_not_called()
示例#16
0
def test_present_exists_basic(mocks, existing_group, db_args):
    mocks["postgres.role_get"].return_value = existing_group

    assert postgres_group.present("groupname") == {
        "name": "groupname",
        "result": True,
        "changes": {},
        "comment": "Group groupname is already present",
    }
    mocks["postgres.role_get"].assert_called_once_with("groupname",
                                                       return_password=True,
                                                       **db_args)
    mocks["postgres.group_create"].assert_not_called()
    mocks["postgres.group_update"].assert_not_called()
示例#17
0
    def test_present(self):
        '''
        Test to ensure that the named group is present
        with the specified privileges.
        '''
        name = 'frank'

        ret = {'name': name, 'changes': {}, 'result': False, 'comment': ''}

        mock_t = MagicMock(return_value=True)
        mock = MagicMock(return_value=None)
        with patch.dict(postgres_group.__salt__, {
                'postgres.role_get': mock,
                'postgres.group_create': mock_t
        }):
            with patch.dict(postgres_group.__opts__, {'test': True}):
                comt = ('Group {0} is set to be created'.format(name))
                ret.update({'comment': comt, 'result': None})
                self.assertDictEqual(postgres_group.present(name), ret)

            with patch.dict(postgres_group.__opts__, {'test': False}):
                comt = ('The group {0} has been created'.format(name))
                ret.update({'comment': comt, 'result': True})
                self.assertDictEqual(postgres_group.present(name), ret)
    def test_present(self):
        """
        Test to ensure that the named group is present
        with the specified privileges.
        """
        name = "frank"

        ret = {"name": name, "changes": {}, "result": False, "comment": ""}

        mock_t = MagicMock(return_value=True)
        mock = MagicMock(return_value=None)
        with patch.dict(
            postgres_group.__salt__,
            {"postgres.role_get": mock, "postgres.group_create": mock_t},
        ):
            with patch.dict(postgres_group.__opts__, {"test": True}):
                comt = "Group {0} is set to be created".format(name)
                ret.update({"comment": comt, "result": None})
                self.assertDictEqual(postgres_group.present(name), ret)

            with patch.dict(postgres_group.__opts__, {"test": False}):
                comt = "The group {0} has been created".format(name)
                ret.update({"comment": comt, "result": True})
                self.assertDictEqual(postgres_group.present(name), ret)
示例#19
0
    def test_present__update(self):
        # test=True
        with patch.dict(
                postgres_group.__salt__,
            {
                "postgres.role_get":
                Mock(
                    return_value={
                        "can create databases": False,
                        "can create roles": False,
                        "can login": False,
                        "can update system catalogs": False,
                        "connections": None,
                        "defaults variables": {},
                        "expiry time": None,
                        "inherits privileges": True,
                        "replication": False,
                        "superuser": False,
                    }),
                "postgres.group_update":
                MagicMock(),
            },
        ):
            with patch.dict(postgres_group.__opts__, {"test": True}):
                ret = postgres_group.present("foo",
                                             login=True,
                                             replication=False)
                self.assertEqual(
                    ret,
                    {
                        "comment": "Group foo is set to be updated",
                        "changes": {
                            "foo": {
                                "login": True
                            }
                        },
                        "name": "foo",
                        "result": None,
                    },
                )
                self.assertEqual(
                    self.salt_stub["postgres.group_update"].call_count, 0)

            # test=False
            ret = postgres_group.present("foo", login=True, replication=False)
            self.assertEqual(
                ret,
                {
                    "comment": "The group foo has been updated",
                    "changes": {
                        "foo": {
                            "login": True
                        }
                    },
                    "name": "foo",
                    "result": True,
                },
            )
            self.salt_stub["postgres.group_update"].assert_called_once_with(
                superuser=None,
                replication=False,
                encrypted=True,
                runas=None,
                inherit=None,
                rolepassword=None,
                port=None,
                groupname="foo",
                host=None,
                createroles=None,
                user=None,
                groups=None,
                maintenance_db=None,
                login=True,
                password=None,
                createdb=None,
            )