00001 import unittest 00002 import os 00003 import GPyUnit.util 00004 from GPyUnit.util import DispatchEx 00005 00006 def _adjacent_file(file): 00007 import os.path 00008 return os.path.join(os.path.dirname(os.path.abspath(__file__)), file) 00009 00010 class TestParser(unittest.TestCase): 00011 def test_ParseMetaGME(self): 00012 mga = GPyUnit.util.parse_xme(self.connstr) 00013 mga.Save() 00014 mga.Close() 00015 if type(self) == TestParser: 00016 self.assertTrue(os.path.isfile(_adjacent_file("parsertest.mga"))) 00017 00018 def test_ParseInTx(self): 00019 project = GPyUnit.util.DispatchEx("Mga.MgaProject") 00020 project.Create(self.connstr, "MetaGME") 00021 project.BeginTransactionInNewTerr() 00022 try: 00023 mga = GPyUnit.util.parse_xme(self.connstr, project=project) 00024 except Exception, e: 00025 self.assertTrue(str(e).find("already in transaction") != -1) 00026 project.Close(True) 00027 00028 @property 00029 def connstr(self): 00030 return "MGA=" + _adjacent_file("parsertest.mga") 00031 00032 def test_GetXMLParadigm(self): 00033 parser = DispatchEx("Mga.MgaParser") 00034 paradigm = parser.GetXMLParadigm(os.environ['GME_ROOT'] + r"\Paradigms\MetaGME\MetaGME-model.xme") 00035 assert paradigm == "MetaGME" 00036 00037 def test_GetXMLInfo(self): 00038 parser = DispatchEx("Mga.MgaParser") 00039 xme = os.environ['GME_ROOT'] + r"\Paradigms\MetaGME\MetaGME-model.xme" 00040 (paradigm, parversion, parguid, basename, ver) = parser.GetXMLInfo(xme) 00041 assert paradigm == "MetaGME" 00042 00043 GPyUnit.util.MUGenerator(globals(), TestParser) 00044 00045 if __name__ == "__main__": 00046 unittest.main()