def testRepositoryWithOneFile(self):
        self.GivenRepositoryStructure(['File1.mof'])

        repository = MofFileRepository('./repository/')
        moffiles = repository.GetAllMofFiles()
        moffilenames = self.GetMofFileNames(moffiles)
        self.assertEqual(moffilenames, ['./repository/File1.mof'])
    def testNonMofFilesAreIgnored(self):
        self.GivenRepositoryStructure(
            ['File1.mof', 'directory1/File2.mof', 'directory2/File3.notmof'])

        repository = MofFileRepository('./repository/')
        self.assertEqual(
            self.GetMofFileNames(repository.GetAllMofFiles()).sort(),
            ['./repository/File1.mof',
             './repository/directory1/File2.mof'].sort())
    def testRecursiveRepositoryWith3Files(self):
        self.GivenRepositoryStructure(
            ['File1.mof', 'directory1/File2.mof', 'directory2/File3.mof'])

        repository = MofFileRepository('./repository/')
        self.assertEqual(
            self.GetMofFileNames(repository.GetAllMofFiles()).sort(), [
                './repository/File1.mof', './repository/directory1/File2.mof',
                './repository/directory2/File3.mof'
            ].sort())
    def testGetFileDefiningClass(self):
        self.GivenRepositoryStructure(
            ['File1.mof', 'directory1/File2.mof', 'directory2/File3.mof'])
        out = open('./repository/directory1/File4.mof', 'w')
        out.write('class TestClass {\n')
        out.write('}')
        out.close()

        repository = MofFileRepository('./repository/')
        self.assertEqual(
            repository.GetFileDefiningClass('TestClass').GetFileName(),
            './repository/directory1/File4.mof')
        self.assertEqual(repository.GetFileDefiningClass('NoSuchClass'), None)
    def testMofFileWithNoDependentClasses(self):
        out = open('./TestFile.mof', 'w')
        out.write('class TestClass {\n')
        out.write('}\n')
        out.close()

        mofrepository = MofFileRepository('./repository')
        moffile = MofFile('./TestFile.mof')
        depLister = DependencyWalker(mofrepository, [moffile])
        self.assertEqual(depLister.GetRequiredFiles(), [])
    def testMofFileWithOneDependentClass(self):
        out = open('./TestFile.mof', 'w')
        out.write('class TestClass : BaseClass {\n')
        out.write('}')
        out.close()

        mofrepository = MofFileRepository('./repository')
        moffile = MofFile('./TestFile.mof')
        depLister = DependencyWalker(mofrepository, [moffile])

        self.assertEqual(self.GetMofFileNames(depLister.GetRequiredFiles()),
                         ['./repository/BaseClass.mof'])
 def testNoFiles(self):
     mofrepository = MofFileRepository('./repository')
     depLister = DependencyWalker(mofrepository, [])
     self.assertEqual(depLister.GetRequiredFiles(), [])
 def testEmptyRepository(self):
     repository = MofFileRepository('./repository/')
     self.assertEqual(repository.GetAllMofFiles(), [])
Beispiel #9
0
from commandlineparser import CommandLineParser
from moffilerepository import MofFileRepository
from moffile import MofFile
from dependencywalker import DependencyWalker

##
# Main entry point
#
if __name__ == '__main__':

    # Parse command line parameters
    cmdLineParser = CommandLineParser()

    # Parse the complete mof file repository
    mofRepository = MofFileRepository(cmdLineParser.getCIMSchemaDir())

    # Parse the mof files supplied as arguments
    moffiles = []
    for filename in cmdLineParser.getArguments():
        moffiles.append(MofFile(filename))

    # This will generate the dependency list.
    depWalker = DependencyWalker(mofRepository, moffiles)

    # The paths in the generated output will be stripped of the --cim_schema_dir part of the path.
    includeDir = cmdLineParser.getCIMSchemaDir()
    if not includeDir.endswith('/'):
        includeDir = includeDir + '/'

    # Print to standard output in mof format.