Ejemplo n.º 1
0
 def setUp(self):
     super(MemcachedRoleTest, self).setUp()
     self.role = MemcachedRole(prov=None, context={'owner': 'some-owner'})
Ejemplo n.º 2
0
 def setUp(self):
     super(MemcachedRoleTest, self).setUp()
     self.role = MemcachedRole(prov=None, context={'owner': 'some-owner'})
Ejemplo n.º 3
0
class MemcachedRoleTest(ProvyTestCase):
    def setUp(self):
        super(MemcachedRoleTest, self).setUp()
        self.role = MemcachedRole(prov=None, context={'owner': 'some-owner'})

    @istest
    def installs_necessary_packages_to_provision(self):
        with self.using_stub(AptitudeRole) as aptitude, self.mock_role_method('register_template_loader'):
            self.role.provision()

            self.role.register_template_loader.assert_called_once_with('provy.more.debian.cache')
            self.assertEqual(aptitude.ensure_package_installed.mock_calls, [
                call('memcached'),
                call('libmemcached-dev'),
            ])

    @istest
    def ensures_configuration_with_defaults(self):
        with self.mock_role_methods('update_file', 'ensure_restart'):
            self.role.update_file.return_value = True

            self.role.ensure_conf()

            self.role.update_file.assert_called_once_with('memcached.conf.template', '/etc/memcached.conf', sudo=True, owner='some-owner',
                                                          options={
                                                              'host': '127.0.0.1',
                                                              'memory_in_mb': 64,
                                                              'verbose_level': 0,
                                                              'log_folder': '/var/log/memcached',
                                                              'simultaneous_connections': 1024,
                                                              'port': 11211,
                                                              'lock_down': False,
                                                              'user': '******',
                                                              'maximize_core_file_limit': False,
                                                              'error_when_memory_exhausted': False
                                                          })
            self.role.ensure_restart.assert_called_once_with()

    @istest
    def ensures_configuration_with_custom_config(self):
        with self.mock_role_methods('update_file', 'ensure_restart'):
            self.role.update_file.return_value = True

            self.role.ensure_conf(owner='root',
                                  log_folder='/foo/bar',
                                  verbose_level=123,
                                  memory_in_mb=234,
                                  host='192.168.1.1',
                                  port=12345,
                                  user='******',
                                  simultaneous_connections=65432,
                                  lock_down=True,
                                  error_when_memory_exhausted=True,
                                  maximize_core_file_limit=True,
                                  conf_path='/bar/foo.conf')

            self.role.update_file.assert_called_once_with('memcached.conf.template', '/bar/foo.conf', sudo=True, owner='root',
                                                          options={
                                                              'host': '192.168.1.1',
                                                              'memory_in_mb': 234,
                                                              'verbose_level': 123,
                                                              'log_folder': '/foo/bar',
                                                              'simultaneous_connections': 65432,
                                                              'port': 12345,
                                                              'lock_down': True,
                                                              'user': '******',
                                                              'maximize_core_file_limit': True,
                                                              'error_when_memory_exhausted': True,
                                                          })
            self.role.ensure_restart.assert_called_once_with()

    @istest
    def doesnt_restart_if_not_necessary_upon_cleanup(self):
        with self.mock_role_method('restart'):
            self.role.cleanup()

            self.assertFalse(self.role.restart.called)

    @istest
    def restart_if_necessary_upon_cleanup(self):
        self.role.context['must-restart-memcached'] = True

        with self.mock_role_method('restart'):
            self.role.cleanup()

            self.assertTrue(self.role.restart.called)

    @istest
    def ensures_memcached_is_restarted(self):
        self.role.context['must-restart-memcached'] = False

        self.role.ensure_restart()

        self.assertTrue(self.role.context['must-restart-memcached'])

    @istest
    def restarts_memcached(self):
        with self.execute_mock():
            self.role.restart()

            self.role.execute.assert_called_once_with('/etc/init.d/memcached restart', sudo=True)
Ejemplo n.º 4
0
class MemcachedRoleTest(ProvyTestCase):
    def setUp(self):
        super(MemcachedRoleTest, self).setUp()
        self.role = MemcachedRole(prov=None, context={'owner': 'some-owner'})

    @istest
    def installs_necessary_packages_to_provision(self):
        with self.using_stub(AptitudeRole) as aptitude, self.mock_role_method(
                'register_template_loader'):
            self.role.provision()

            self.role.register_template_loader.assert_called_once_with(
                'provy.more.debian.cache')
            self.assertEqual(aptitude.ensure_package_installed.mock_calls, [
                call('memcached'),
                call('libmemcached-dev'),
            ])

    @istest
    def ensures_configuration_with_defaults(self):
        with self.mock_role_methods('update_file', 'ensure_restart'):
            self.role.update_file.return_value = True

            self.role.ensure_conf()

            self.role.update_file.assert_called_once_with(
                'memcached.conf.template',
                '/etc/memcached.conf',
                sudo=True,
                owner='some-owner',
                options={
                    'host': '127.0.0.1',
                    'memory_in_mb': 64,
                    'verbose_level': 0,
                    'log_folder': '/var/log/memcached',
                    'simultaneous_connections': 1024,
                    'port': 11211,
                    'lock_down': False,
                    'user': '******',
                    'maximize_core_file_limit': False,
                    'error_when_memory_exhausted': False
                })
            self.role.ensure_restart.assert_called_once_with()

    @istest
    def ensures_configuration_with_custom_config(self):
        with self.mock_role_methods('update_file', 'ensure_restart'):
            self.role.update_file.return_value = True

            self.role.ensure_conf(owner='root',
                                  log_folder='/foo/bar',
                                  verbose_level=123,
                                  memory_in_mb=234,
                                  host='192.168.1.1',
                                  port=12345,
                                  user='******',
                                  simultaneous_connections=65432,
                                  lock_down=True,
                                  error_when_memory_exhausted=True,
                                  maximize_core_file_limit=True,
                                  conf_path='/bar/foo.conf')

            self.role.update_file.assert_called_once_with(
                'memcached.conf.template',
                '/bar/foo.conf',
                sudo=True,
                owner='root',
                options={
                    'host': '192.168.1.1',
                    'memory_in_mb': 234,
                    'verbose_level': 123,
                    'log_folder': '/foo/bar',
                    'simultaneous_connections': 65432,
                    'port': 12345,
                    'lock_down': True,
                    'user': '******',
                    'maximize_core_file_limit': True,
                    'error_when_memory_exhausted': True,
                })
            self.role.ensure_restart.assert_called_once_with()

    @istest
    def doesnt_restart_if_configuration_update_fails(self):
        with self.mock_role_methods('update_file', 'ensure_restart'):
            self.role.update_file.return_value = False

            self.role.ensure_conf()

            self.assertFalse(self.role.ensure_restart.called)

    @istest
    def doesnt_restart_if_not_necessary_upon_cleanup(self):
        with self.mock_role_method('restart'):
            self.role.cleanup()

            self.assertFalse(self.role.restart.called)

    @istest
    def restart_if_necessary_upon_cleanup(self):
        self.role.context['must-restart-memcached'] = True

        with self.mock_role_method('restart'):
            self.role.cleanup()

            self.assertTrue(self.role.restart.called)

    @istest
    def ensures_memcached_is_restarted(self):
        self.role.context['must-restart-memcached'] = False

        self.role.ensure_restart()

        self.assertTrue(self.role.context['must-restart-memcached'])

    @istest
    def restarts_memcached(self):
        with self.execute_mock():
            self.role.restart()

            self.role.execute.assert_called_once_with(
                '/etc/init.d/memcached restart', sudo=True)