Esempio n. 1
0
class TestContainer(postgres.PostgresqlContainer):

    image = docker.Image('image:tag')

    pg_conf = 'postgresql.conf'

    pg_hba = 'pg_hba.conf'

    pg_data = '/data'
Esempio n. 2
0
    def test_migrate(self):
        cases = dict(
            new_migrations=dict(
                expected_commands=[
                    mock.call('docker run --rm --tty --interactive image:tag python manage.py migrate --noinput', quiet=False),
                ],
                kwargs=dict(),
                container_class_vars=dict(name='name'),
            ),
            customized=dict(
                expected_commands=[
                    mock.call('docker run --rm --tty --interactive registry/image:foo python manage.py migrate --noinput', quiet=False),
                ],
                kwargs=dict(tag='foo', registry='registry'),
                container_class_vars=dict(name='name'),
            ),
            default_with_customized_container=dict(
                expected_commands=[
                    mock.call('docker run --user user --env env --volume volumes --link links --add-host hosts --net network --stop-signal stop_signal --rm --tty --interactive image:tag python manage.py migrate --noinput', quiet=False),
                ],
                kwargs=dict(),
                container_class_vars=dict(
                    user='******',
                    env='env',
                    volumes='volumes',
                    links='links',
                    hosts='hosts',
                    network='network',
                    cmd='cmd',
                    stop_signal='stop_signal',
                    stop_timeout='stop_timeout',

                    ports='ports',
                    restart_policy='restart_policy',
                ),
            ),
        )
        for case, data in cases.items():
            with self.subTest(case=case):
                with mock.patch.object(fabricio, 'run') as run:
                    TestContainer = type(
                        'TestContainer',
                        (DjangoContainer, ),
                        dict(
                            dict(image=docker.Image('image:tag')),
                            **data['container_class_vars']
                        ),
                    )
                    container = TestContainer('test')
                    with fab.settings(fab.hide('everything')):
                        container.migrate(**data['kwargs'])
                        self.assertListEqual(
                            data['expected_commands'],
                            run.mock_calls,
                        )
Esempio n. 3
0
 def test_str_version(self):
     cases = dict(
         empty_options_list=dict(
             options=utils.OrderedDict(),
             expected_str_version='',
         ),
         with_underscore=dict(
             options=utils.OrderedDict(foo_baz='bar'),
             expected_str_version='--foo_baz=bar',
         ),
         multiword=dict(
             options=utils.OrderedDict(foo='bar baz'),
             expected_str_version="--foo='bar baz'",
         ),
         empty=dict(
             options=utils.OrderedDict(foo=''),
             expected_str_version="--foo=''",
         ),
         str=dict(
             options=utils.OrderedDict(foo='bar'),
             expected_str_version='--foo=bar',
         ),
         unicode=dict(
             options=utils.OrderedDict(foo=u'привет'),
             expected_str_version=u"--foo='привет'",
         ),
         integer=dict(
             options=utils.OrderedDict(foo=42),
             expected_str_version='--foo=42',
         ),
         integer_zero=dict(
             options=utils.OrderedDict(foo=0),
             expected_str_version='--foo=0',
         ),
         integer_one=dict(
             options=utils.OrderedDict(foo=1),
             expected_str_version='--foo=1',
         ),
         integer_minus_one=dict(
             options=utils.OrderedDict(foo=-1),
             expected_str_version='--foo=-1',
         ),
         image=dict(
             options=utils.OrderedDict(image=docker.Image('image:tag')),
             expected_str_version='--image=image:tag',
         ),
         triple_length=dict(
             options=utils.OrderedDict([
                 ('foo', 'foo'),
                 ('bar', 'bar'),
                 ('baz', 'baz'),
             ]),
             expected_str_version='--foo=foo --bar=bar --baz=baz',
         ),
         multi_value_empty=dict(
             options=utils.OrderedDict(foo=[]),
             expected_str_version='',
         ),
         multi_value=dict(
             options=utils.OrderedDict(foo=['bar', 'baz']),
             expected_str_version='--foo=bar --foo=baz',
         ),
         multi_value_integer=dict(
             options=utils.OrderedDict(foo=[42, 43]),
             expected_str_version='--foo=42 --foo=43',
         ),
         boolean_values=dict(
             options=utils.OrderedDict(foo=True, bar=False),
             expected_str_version='--foo',
         ),
         mix=dict(
             options=utils.OrderedDict([
                 ('foo', 'foo'),
                 ('bar', True),
                 ('baz', ['1', 'a']),
             ]),
             expected_str_version='--foo=foo --bar --baz=1 --baz=a',
         ),
     )
     for case, params in cases.items():
         with self.subTest(case=case):
             options = utils.Options(params['options'])
             expected_str_version = params['expected_str_version']
             self.assertEqual(expected_str_version, six.text_type(options))
Esempio n. 4
0
 def test_str_version(self):
     cases = dict(
         empty_options_list=dict(
             options=utils.OrderedDict(),
             expected_str_version='',
         ),
         with_underscore=dict(
             options=utils.OrderedDict(foo_baz='bar'),
             expected_str_version='--foo_baz bar',
         ),
         multiword=dict(
             options=utils.OrderedDict(foo='bar baz'),
             expected_str_version='--foo "bar baz"',
         ),
         empty=dict(
             options=utils.OrderedDict(foo=''),
             expected_str_version='--foo ""',
         ),
         with_single_quotes=dict(
             options=utils.OrderedDict(foo="'bar'"),
             expected_str_version='--foo "\'bar\'"',
         ),
         with_double_quotes=dict(
             options=utils.OrderedDict(foo='"bar"'),
             expected_str_version='--foo "\\"bar\\""',
         ),
         with_quotes_and_spaces=dict(
             options=utils.OrderedDict(foo='"bar" \'baz\''),
             expected_str_version='--foo "\\"bar\\" \'baz\'"',
         ),
         str=dict(
             options=utils.OrderedDict(foo='bar'),
             expected_str_version='--foo bar',
         ),
         unicode=dict(
             options=utils.OrderedDict(foo=u'привет'),
             expected_str_version=u'--foo привет',
         ),
         integer=dict(
             options=utils.OrderedDict(foo=42),
             expected_str_version='--foo 42',
         ),
         image=dict(
             options=utils.OrderedDict(image=docker.Image('image:tag')),
             expected_str_version='--image image:tag',
         ),
         triple_length=dict(
             options=utils.OrderedDict([
                 ('foo', 'foo'),
                 ('bar', 'bar'),
                 ('baz', 'baz'),
             ]),
             expected_str_version='--foo foo --bar bar --baz baz',
         ),
         multi_value=dict(
             options=utils.OrderedDict(foo=['bar', 'baz']),
             expected_str_version='--foo bar --foo baz',
         ),
         multi_value_integer=dict(
             options=utils.OrderedDict(foo=[42, 43]),
             expected_str_version='--foo 42 --foo 43',
         ),
         boolean_values=dict(
             options=utils.OrderedDict(foo=True, bar=False),
             expected_str_version='--foo',
         ),
         mix=dict(
             options=utils.OrderedDict([
                 ('foo', 'foo'),
                 ('bar', True),
                 ('baz', ['1', 'a']),
             ]),
             expected_str_version='--foo foo --bar --baz 1 --baz a',
         ),
     )
     for case, params in cases.items():
         with self.subTest(case=case):
             options = utils.Options(params['options'])
             expected_str_version = params['expected_str_version']
             self.assertEqual(expected_str_version, six.text_type(options))
Esempio n. 5
0
class TestContainer(docker.Container):

    image = docker.Image('test')