""" Created on Sun Jun 07 19:08:34 2018 @author: Sanjeet Bhatti """ from grass.gunittest.case import TestCase from grass.gunittest.main import test from grass.gunittest.gmodules import SimpleModule from grass.script.core import run_command from grass.script.utils import decode class TestDbDropColumn(TestCase): """Test db.dropcolumn script""" mapName = "myroads" colName = "SHAPE_LEN" @classmethod def setUpClass(cls): """Copy vector.""" run_command("g.copy", vector="roadsmajor,myroads") @classmethod def tearDownClass(cls): """Remove copied vector""" run_command("g.remove", type="vector", name=cls.mapName, flags="f") def test_drop_column_check(self): """Drop column check, the column should still be in the table""" module = SimpleModule("db.dropcolumn", table=self.mapName, column=self.colName) self.assertModule(module) m = SimpleModule("db.columns", table=self.mapName) self.assertModule(m) self.assertRegexpMatches(decode(m.outputs.stdout), self.colName) def test_drop_column_with_force(self): """Drop column with force, the column should not be in the table""" module = SimpleModule( "db.dropcolumn", table=self.mapName, column=self.colName, flags="f" ) self.assertModule(module) m = SimpleModule("db.columns", table=self.mapName) self.assertModule(m) self.assertNotRegexpMatches(decode(m.outputs.stdout), self.colName) if __name__ == "__main__": test()