Ejemplo n.º 1
0
    def test_unload_extensions_order(self):
        tdir = tempfile.mkdtemp()
        try:
            from pgxnclient.zip import unpack
            dir = unpack(get_test_filename('foobar-0.42.1.zip'), tdir)
            shutil.copyfile(get_test_filename('META-manyext.json'),
                            os.path.join(dir, 'META.json'))

            from pgxnclient.cli import main
            main(['unload', '--yes', dir])

        finally:
            shutil.rmtree(tdir)

        self.assertEquals(self.mock_popen.call_count, 4)
        self.assert_('psql' in self.mock_popen.call_args[0][0][0])
        communicate = self.mock_popen.return_value.communicate
        self.assertEquals(communicate.call_args_list[0][0][0],
                          b('DROP EXTENSION qux;'))
        self.assertEquals(communicate.call_args_list[1][0][0],
                          b('DROP EXTENSION baz;'))
        self.assertEquals(communicate.call_args_list[2][0][0],
                          b('DROP EXTENSION bar;'))
        self.assertEquals(communicate.call_args_list[3][0][0],
                          b('DROP EXTENSION foo;'))
Ejemplo n.º 2
0
    def test_unload_extensions_order(self):
        tdir = tempfile.mkdtemp()
        try:
            from pgxnclient.zip import unpack
            dir = unpack(get_test_filename('foobar-0.42.1.zip'), tdir)
            shutil.copyfile(
                get_test_filename('META-manyext.json'),
                os.path.join(dir, 'META.json'))

            from pgxnclient.cli import main
            main(['unload', '--yes', dir])

        finally:
            shutil.rmtree(tdir)

        self.assertEquals(self.mock_popen.call_count, 4)
        self.assert_('psql' in self.mock_popen.call_args[0][0][0])
        communicate = self.mock_popen.return_value.communicate
        self.assertEquals(communicate.call_args_list[0][0][0],
            b('DROP EXTENSION qux;'))
        self.assertEquals(communicate.call_args_list[1][0][0],
            b('DROP EXTENSION baz;'))
        self.assertEquals(communicate.call_args_list[2][0][0],
            b('DROP EXTENSION bar;'))
        self.assertEquals(communicate.call_args_list[3][0][0],
            b('DROP EXTENSION foo;'))
Ejemplo n.º 3
0
    def test_load_list(self):
        tdir = tempfile.mkdtemp()
        try:
            from pgxnclient.zip import unpack

            dir = unpack(get_test_filename('foobar-0.42.1.zip'), tdir)
            shutil.copyfile(
                get_test_filename('META-manyext.json'),
                os.path.join(dir, 'META.json'),
            )

            from pgxnclient.cli import main

            main(['load', '--yes', dir, 'baz', 'foo'])

        finally:
            shutil.rmtree(tdir)

        self.assertEquals(self.mock_popen.call_count, 2)
        self.assert_('psql' in self.mock_popen.call_args[0][0][0])
        communicate = self.mock_popen.return_value.communicate
        self.assertEquals(
            communicate.call_args_list[0][0][0], b'CREATE EXTENSION baz;'
        )
        self.assertEquals(
            communicate.call_args_list[1][0][0], b'CREATE EXTENSION foo;'
        )
Ejemplo n.º 4
0
    def test_install_local_dir(self):
        self.mock_get.side_effect = lambda *args: self.fail('network invoked')

        tdir = tempfile.mkdtemp()
        try:
            from pgxnclient.zip import unpack

            dir = unpack(get_test_filename('foobar-0.42.1.zip'), tdir)

            from pgxnclient.cli import main

            main(['install', '--sudo', '--', dir])

        finally:
            shutil.rmtree(tdir)

        self.assertEquals(self.mock_popen.call_count, 2)
        self.assertCallArgs(
            [self.make], self.mock_popen.call_args_list[0][0][0][:1]
        )
        self.assertCallArgs(dir, self.mock_popen.call_args_list[0][1]['cwd'])
        self.assertCallArgs(
            ['sudo', self.make], self.mock_popen.call_args_list[1][0][0][:2]
        )
        self.assertEquals(dir, self.mock_popen.call_args_list[1][1]['cwd'])
Ejemplo n.º 5
0
    def test_load_list(self):
        tdir = tempfile.mkdtemp()
        try:
            from pgxnclient.zip import unpack

            dir = unpack(get_test_filename('foobar-0.42.1.zip'), tdir)
            shutil.copyfile(
                get_test_filename('META-manyext.json'),
                os.path.join(dir, 'META.json'),
            )

            from pgxnclient.cli import main

            main(['load', '--yes', dir, 'baz', 'foo'])

        finally:
            shutil.rmtree(tdir)

        self.assertEquals(self.mock_popen.call_count, 2)
        self.assert_('psql' in self.mock_popen.call_args[0][0][0])
        communicate = self.mock_popen.return_value.communicate
        self.assertEquals(communicate.call_args_list[0][0][0],
                          b'CREATE EXTENSION baz;')
        self.assertEquals(communicate.call_args_list[1][0][0],
                          b'CREATE EXTENSION foo;')
Ejemplo n.º 6
0
    def test_missing_meta_dir(self):
        # issue #19
        tdir = tempfile.mkdtemp()
        try:
            from pgxnclient.zip import unpack
            dir = unpack(get_test_filename('foobar-0.42.1.zip'), tdir)
            os.unlink(os.path.join(dir, 'META.json'))

            from pgxnclient.cli import main
            self.assertRaises(PgxnClientException, main, ['load', dir])

        finally:
            shutil.rmtree(tdir)
Ejemplo n.º 7
0
    def test_missing_meta_dir(self):
        # issue #19
        tdir = tempfile.mkdtemp()
        try:
            from pgxnclient.zip import unpack
            dir = unpack(get_test_filename('foobar-0.42.1.zip'), tdir)
            os.unlink(os.path.join(dir, 'META.json'))

            from pgxnclient.cli import main
            self.assertRaises(PgxnClientException, main, ['load', dir])

        finally:
            shutil.rmtree(tdir)
Ejemplo n.º 8
0
    def test_unload_missing(self):
        tdir = tempfile.mkdtemp()
        try:
            from pgxnclient.zip import unpack
            dir = unpack(get_test_filename('foobar-0.42.1.zip'), tdir)
            shutil.copyfile(get_test_filename('META-manyext.json'),
                            os.path.join(dir, 'META.json'))

            from pgxnclient.cli import main
            self.assertRaises(PgxnClientException, main,
                              ['unload', '--yes', dir, 'foo', 'ach'])

        finally:
            shutil.rmtree(tdir)

        self.assertEquals(self.mock_popen.call_count, 0)
Ejemplo n.º 9
0
    def test_unload_missing(self):
        tdir = tempfile.mkdtemp()
        try:
            from pgxnclient.zip import unpack
            dir = unpack(get_test_filename('foobar-0.42.1.zip'), tdir)
            shutil.copyfile(
                get_test_filename('META-manyext.json'),
                os.path.join(dir, 'META.json'))

            from pgxnclient.cli import main
            self.assertRaises(PgxnClientException, main,
                ['unload', '--yes', dir, 'foo', 'ach'])

        finally:
            shutil.rmtree(tdir)

        self.assertEquals(self.mock_popen.call_count, 0)
Ejemplo n.º 10
0
    def test_load_local_dir(self, mock_get):
        mock_get.side_effect = lambda *args: self.fail('network invoked')

        tdir = tempfile.mkdtemp()
        try:
            from pgxnclient.zip import unpack
            dir = unpack(get_test_filename('foobar-0.42.1.zip'), tdir)

            from pgxnclient.cli import main
            main(['load', '--yes', dir])

        finally:
            shutil.rmtree(tdir)

        self.assertEquals(self.mock_popen.call_count, 1)
        self.assert_('psql' in self.mock_popen.call_args[0][0][0])
        communicate = self.mock_popen.return_value.communicate
        self.assertEquals(communicate.call_args[0][0],
                          b('CREATE EXTENSION foobar;'))
Ejemplo n.º 11
0
    def test_load_local_dir(self, mock_get):
        mock_get.side_effect = lambda *args: self.fail('network invoked')

        tdir = tempfile.mkdtemp()
        try:
            from pgxnclient.zip import unpack
            dir = unpack(get_test_filename('foobar-0.42.1.zip'), tdir)

            from pgxnclient.cli import main
            main(['load', '--yes', dir])

        finally:
            shutil.rmtree(tdir)

        self.assertEquals(self.mock_popen.call_count, 1)
        self.assert_('psql' in self.mock_popen.call_args[0][0][0])
        communicate = self.mock_popen.return_value.communicate
        self.assertEquals(communicate.call_args[0][0],
            b('CREATE EXTENSION foobar;'))
Ejemplo n.º 12
0
    def test_install_local_dir(self):
        self.mock_get.side_effect = lambda *args: self.fail('network invoked')

        tdir = tempfile.mkdtemp()
        try:
            from pgxnclient.zip import unpack
            dir = unpack(get_test_filename('foobar-0.42.1.zip'), tdir)

            from pgxnclient.cli import main
            main(['install', '--sudo', '--', dir])

        finally:
            shutil.rmtree(tdir)

        self.assertEquals(self.mock_popen.call_count, 2)
        self.assertCallArgs([self.make],
                            self.mock_popen.call_args_list[0][0][0][:1])
        self.assertCallArgs(dir, self.mock_popen.call_args_list[0][1]['cwd'])
        self.assertCallArgs(['sudo', self.make],
                            self.mock_popen.call_args_list[1][0][0][:2])
        self.assertEquals(dir, self.mock_popen.call_args_list[1][1]['cwd'])