def test_nested_folders(self):
        from Products.PythonScripts.PythonScript import manage_addPythonScript
        self.layer['app'].manage_addFolder("repository")
        repository = self.layer['app']["repository"]
        repository.manage_addFolder("foo")
        repository.foo.manage_addFolder("bar")
        manage_addPythonScript(repository.foo.bar, 'example.py')
        script = repository.foo.bar['example.py']

        serialised = serialise_directory(repository)
        
        try:
            cwd = os.getcwd()
            
            git_repo = tempfile.mkdtemp()
            os.chdir(git_repo)
            os.system("mkdir foo")
            os.system("mkdir foo/bar")
            with open(os.path.join(git_repo, "foo", "bar", "example.py"), 'wb') as real_file:
                real_file.write(script.manage_DAVget())
            os.system("git init")
            os.system("git add foo")
            os.system("git cia -m 'example'")
            
            for hashed, contents in serialised:
                path = os.path.join(git_repo, ".git", "objects", hashed[:2], hashed[2:])
                self.assertEqual(open(path, 'rb').read(), contents)
        finally:
            os.chdir(cwd)
            shutil.rmtree(git_repo)
示例#2
0
 def test_folder_serialisation(self):
     from mr.tennant.git import serialise_directory
     
     directory = {"example.py":"return 'hi"}
     serialised = list(serialise_directory(directory))
     
     # XXX What else to check?
     self.assertEqual(len(serialised), 2)