示例#1
0
文件: Doc.py 项目: techeye220/w4py
    def main(self, args=None):
        self.progPath = os.path.join(os.getcwd(), sys.argv[0])

        self.otherKeys = self.otherKeys  # pick up class level value
        self.parseArgs(args)

        modelName = self.args.get('model')
        if not modelName:
            classesName = self.args.get('classes')
            if not classesName:
                self.usage('No model or classes file specified.')

        outDir = self.args.get('outDir', os.curdir)
        self.requireDir(outDir)

        outDir = os.path.join(outDir, 'GeneratedDocs')
        self.requireDir(outDir)

        self.outDir = outDir

        from MiddleKit.Core.Model import Model
        if modelName:
            self.model = Model(modelName, havePythonClasses=False)
        else:
            self.model = Model(classesFilename=classesName,
                               havePythonClasses=False)

        source = os.path.join(os.path.dirname(self.progPath),
                              self.sourceStyleSheetFilename)
        dest = os.path.join(outDir, self.destStyleSheetFilename)
        shutil.copyfile(source, dest)

        #self.dump()
        self.generateHTML()
示例#2
0
def test(modelFilename, workDir=workDir, toTestDir='../'):
	"""
	modelFilename: the correct filename to the existing model
	workDir:       the directory to remove and create and then put the
	               generated files in
	toTestDir:     a relative path to get from inside the workDir back
	               to the MiddleKit/Tests dir

	In most cases, the defaults for workDir and toTestDir are
	sufficient.	In funkalicious cases, like the MKMultipleStores test,
	overriding these defaults comes in handy.
	"""
	rmdir(workDir)     # get rid of files from previous runs
	os.mkdir(workDir)  # make a space for the files from this run

	# Run generate, load the model, and import some classes
	Generate().main('Generate.py --outdir %s --db MySQL --model %s' % (workDir, modelFilename))
	curDir = os.getcwd()
	os.chdir(workDir)
	try:
		model = Model(toTestDir+modelFilename)
		importPyClasses(model.klasses())
		return model
	finally:
		os.chdir(curDir)
示例#3
0
    def makeModel(self):
        """ Constructs and returns a MiddleKit model for use with UserKit. """

        from MiddleKit.Core.Model import Model
        from MiddleKit.Core.Klasses import Klasses
        from MiddleKit.Core.Klass import Klass
        from MiddleKit.Core.StringAttr import StringAttr
        klass = Klass()
        klass.readDict({'Class': 'UserForMKTest'})
        klass.addAttr(
            StringAttr({
                'Name': 'name',
                'Type': 'string',
                'isRequired': 1,
            }))
        klass.addAttr(
            StringAttr({
                'Name': 'password',
                'Type': 'string',
                'isRequired': 1,
            }))
        klass.addAttr(
            StringAttr({
                'Name': 'externalId',
                'Type': 'string',
                'isRequired': 0,
            }))
        model = Model()
        model.setName(self.__class__.__name__)
        model.readParents([])
        klasses = model.klasses()
        klasses.addKlass(klass)
        model.awakeFromRead(
        )  # @@ 2001-02-17 ce: a little weird regarding name
        return model
示例#4
0
def test(modelFilename, configFilename, workDir=workDir, toTestDir='../'):
    """Test method.

    modelFilename: the correct filename to the existing model
    workDir:       the directory to remove and create and then put the
                   generated files in
    toTestDir:     a relative path to get from inside the workDir back
                   to the MiddleKit/Tests dir

    In most cases, the defaults for workDir and toTestDir are
    sufficient.     In funkalicious cases, like the MKMultipleStores test,
    overriding these defaults comes in handy.
    """
    rmdir(workDir)  # get rid of files from previous runs
    os.mkdir(workDir)  # make a space for the files from this run

    # Run generate, load the model, and import some classes
    command = os.path.normpath('../Design/Generate.py')
    command += ' --outdir %s --db %s --model %s' % (workDir, dbName,
                                                    modelFilename)
    if configFilename:
        command += ' --config ' + configFilename
    print(command)
    Generate().main(command)
    curDir = os.getcwd()
    os.chdir(workDir)
    try:
        if 0:
            print('getcwd:', os.getcwd())
            print('listdir:', os.listdir('.'))
            print('model path:', repr(toTestDir + modelFilename))
            print('sys.path', sys.path)
        model = Model(toTestDir + modelFilename, configFilename=configFilename)
        importPyClasses(model.klasses())
        return model
    finally:
        os.chdir(curDir)