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;'))
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;'))
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;' )
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'])
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;')
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)
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)
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)
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;'))
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'])