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()