def __choose_repo(self): """ Return the path of a repository, either the only repo or presenting the user with a choice. """ repositories = Repository.all() if len(repositories) == 1: return repositories[0] elif len(repositories) == 0: print "You do not have a Mercury module repository." if self.confirm("Would you like to create one?") == "y": while True: path = self.ask("Path to new repository: ") try: Repository.create(path) print "Initialised repository at %s.\n" % path return Repository.all()[0] except NotEmptyException: print "The target (%s) already exists.\n" % path return None else: return None else: print "You have %d Mercury module repositories. Which would you like to install into?\n" % len( repositories) for i in xrange(len(repositories)): print " %5d %s" % (i + 1, repositories[i]) print while (True): print "repo>", try: idx = int(raw_input().strip()) if idx >= 1 and idx <= len(repositories): print return repositories[idx - 1] else: raise ValueError(idx) except ValueError: print "Not a valid selection. Please enter a number between 1 and %d." % len( repositories)
def __choose_repo(self): """ Return the path of a repository, either the only repo or presenting the user with a choice. """ repositories = Repository.all() if len(repositories) == 1: return repositories[0] elif len(repositories) == 0: print "You do not have a Mercury module repository." if self.confirm("Would you like to create one?") == "y": while True: path = self.ask("Path to new repository: ") try: Repository.create(path) print "Initialised repository at %s.\n" % path return Repository.all()[0] except NotEmptyException: print "The target (%s) already exists.\n" % path return None else: return None else: print "You have %d Mercury module repositories. Which would you like to install into?\n" % len(repositories) for i in xrange(len(repositories)): print " %5d %s" % (i + 1, repositories[i]) print while True: print "repo>", try: idx = int(raw_input().strip()) if idx >= 1 and idx <= len(repositories): print return repositories[idx - 1] else: raise ValueError(idx) except ValueError: print "Not a valid selection. Please enter a number between 1 and %d." % len(repositories)
def testItShouldDeleteAModuleRepository(self): Configuration._Configuration__config = self.mockConfigWithoutRepos() Repository.create("./tmp") Repository.delete("./tmp") assert not os.path.exists("./tmp") assert Repository.all() == []
def __list_repositories(self): """ Print a list of Mercury repositories (a) on the local system, and (b) registered as remotes. """ print "Local repositories:" for repo in Repository.all(): print " %s" % repo print
def testItShouldCreateAModuleRepository(self): Configuration._Configuration__config = self.mockConfigWithoutRepos() Repository.create("./tmp") assert os.path.exists("./tmp") assert os.path.exists("./tmp/__init__.py") assert os.path.exists("./tmp/.mercury_repository") assert Repository.all() == ["./tmp"] shutil.rmtree("./tmp")
def testItShouldEnableAModuleRepository(self): Configuration._Configuration__config = self.mockConfigWithoutRepos() Repository.create("./tmp") Configuration._Configuration__config = self.mockConfigWithoutRepos() Repository.enable("./tmp") assert Repository.all() == ["./tmp"] shutil.rmtree("./tmp")
def testItShouldNotEnableAFolderThatIsnNotAModuleRepository(self): Configuration._Configuration__config = self.mockConfigWithoutRepos() os.mkdir("./tmp") try: Repository.enable("./tmp") assert False, "expected UnknownRepository" except UnknownRepository: pass assert Repository.all() == [] shutil.rmtree("./tmp")
def testItShouldRetrieveAllWithoutAConfigFile(self): Configuration._Configuration__config = self.mockConfigWithoutRepos() assert Repository.all() == []
def testItShouldRetrieveAnAdditionalRepository(self): Configuration._Configuration__config = self.mockConfigWithRepos(['/usr/local/mercury/modules']) assert Repository.all() == ['/usr/local/mercury/modules']
def testItShouldRetrieveNoAdditionalRepositories(self): Configuration._Configuration__config = self.mockConfigWithRepos([]) assert Repository.all() == []