def test_django_with_attic(self): """ [XOS-GenX] Generate django output from test.xproto """ args = FakeArgs() args.files = [TEST_XPROTO, VROUTER_XPROTO] args.target = 'django.xtarget' args.attic = TEST_ATTICS args.output = OUTPUT_DIR args.dest_extension = 'py' args.write_to_file = 'model' output = XOSGenerator.generate(args) # xosmodel has custom header attic self.assertIn('from xosmodel_header import *', output['XOSModel']) self.assertIn('class XOSModel(XOSBase):', output['XOSModel']) # vrouter port use the default header self.assertIn('header import *', output['VRouterPort']) self.assertIn('class VRouterPort(XOSBase):', output['VRouterPort']) #verify files xosmodel = OUTPUT_DIR + '/xosmodel.py' self.assertTrue(os.path.isfile(xosmodel)) xmf = open(xosmodel).read() self.assertIn('from xosmodel_header import *', xmf) self.assertIn('class XOSModel(XOSBase):', xmf) vrouterport = OUTPUT_DIR + '/vrouterport.py' self.assertTrue(os.path.isfile(vrouterport)) vrpf = open(vrouterport).read() self.assertIn('header import *', vrpf) self.assertIn('class VRouterPort(XOSBase):', vrpf)
def test_skip_django(self): args = FakeArgs() args.files = [SKIP_DJANGO_XPROTO] args.target = 'django.xtarget' args.output = OUTPUT_DIR args.dest_extension = 'py' args.write_to_file = 'model' output = XOSGenerator.generate(args) # should not print a file if options.skip_django = True file = OUTPUT_DIR + '/user.py' self.assertFalse(os.path.isfile(file))
def test_write_multiple_files(self): """ [XOS-GenX] read multiple models as input, print one file per model """ args = FakeArgs() args.files = [TEST_XPROTO, VROUTER_XPROTO] args.target = TEST_TARGET args.output = OUTPUT_DIR args.dest_extension = 'txt' args.write_to_file = 'model' XOSProcessor.process(args) generated_files = [f for f in os.listdir(OUTPUT_DIR) if not f.startswith('.')] self.assertEqual(len(generated_files), 2) xosmodel = open(os.path.join(OUTPUT_DIR, 'xosmodel.txt'), "r").read() vrouterport = open(os.path.join(OUTPUT_DIR, 'vrouterport.txt'), "r").read() self.assertIn("name: XOSModel", xosmodel) self.assertIn("name: VRouterPort", vrouterport)
def test_django_with_base(self): args = FakeArgs() args.files = [TEST_XPROTO, BASE_XPROTO] args.target = 'django.xtarget' args.attic = TEST_ATTICS args.output = OUTPUT_DIR args.dest_extension = 'py' args.write_to_file = 'model' output = XOSGenerator.generate(args) # verify files xosmodel = OUTPUT_DIR + '/xosmodel.py' self.assertTrue(os.path.isfile(xosmodel)) xmf = open(xosmodel).read() self.assertIn('from xosmodel_header import *', xmf) self.assertIn('class XOSModel(XOSBase):', xmf) xosbase = OUTPUT_DIR + '/xosbase.py' self.assertTrue(os.path.isfile(xosbase)) xbf = open(xosbase).read() self.assertIn('header import *', xbf) self.assertIn('class XOSBase(models.Model, PlModelMixIn):', xbf)