示例#1
0
    def do_add(self, arguments):
        """add a new remote module repository"""

        if len(arguments.options) == 1:
            url = arguments.options[0]

            Remote.create(url)

            print "Added remote: %s.\n" % url
        else:
            print "usage: mercury module remote create http://path.to.repository/\n"
示例#2
0
    def do_add(self, arguments):
        """add a new remote module repository"""

        if len(arguments.options) == 1:
            url = arguments.options[0]

            Remote.create(url)

            print "Added remote: %s.\n" % url
        else:
            print "usage: mercury module remote create http://path.to.repository/\n"
示例#3
0
    def do_remove(self, arguments):
        """remove a remote module repository"""

        if len(arguments.options) == 1:
            url = arguments.options[0]

            try:
                Remote.delete(url)

                print "Removed remove %s.\n" % url
            except UnknownRemote:
                print "The target (%s) is not a remote module repository.\n" % url
        else:
            print "usage: mercury module remote delete http://path.to.repository/\n"
示例#4
0
    def do_remove(self, arguments):
        """remove a remote module repository"""

        if len(arguments.options) == 1:
            url = arguments.options[0]

            try:
                Remote.delete(url)

                print "Removed remove %s.\n" % url
            except UnknownRemote:
                print "The target (%s) is not a remote module repository.\n" % url
        else:
            print "usage: mercury module remote delete http://path.to.repository/\n"
示例#5
0
 def __read_remote_module(self, module):
     """
     Read a module file from a remote, and return the source.
     """
     
     for url in Remote.all():
         source = Remote.get(url).download(module)
         
         # if we found the source, we return straight away - this allows us to
         # install the module from the first source that we come across
         if source != None:
             return source
     
     return None
示例#6
0
    def do_list(self, arguments):
        """shows a list of all remotes"""

        print "Remote repositories:"
        for url in Remote.all():
            print "  %s" % url
        print
示例#7
0
    def do_list(self, arguments):
        """shows a list of all remotes"""

        print "Remote repositories:"
        for url in Remote.all():
            print "  %s" % url
        print
示例#8
0
 def __get_combined_index(self):
     """
     Fetches INDEX files from all known remotes, and builds a combined INDEX
     listing of all available modules.
     """
     
     index = set([])
     
     for url in Remote.all():
         source = Remote.get(url).download("INDEX.xml")
         
         if source != None:
             modules = xml.fromstring(source)
             
             index = index.union(map(lambda m: ModuleInfo(url, m.attrib['name'], m.find("./description").text), modules.findall("./module")))
     
     return filter(lambda m: m != None and m != "", index)
示例#9
0
 def testItShouldNotRemoteARemoteTheDoesNotExist(self):
     Configuration._Configuration__config = self.mockConfigWithRemotes([])
     
     try:
         assert Remote.delete("http://myremote.com/")
         
         assert False, "expected UnknownRemote"
     except UnknownRemote:
         pass
示例#10
0
 def testItShouldGetNoneIfARemoteDoesNotExist(self):
     Configuration._Configuration__config = self.mockConfigWithRemotes([])
     
     assert Remote.get("http://myremote.com/") == None
示例#11
0
 def testItShouldGetARemote(self):
     Configuration._Configuration__config = self.mockConfigWithRemotes(["http://myremote.com/"])
     
     assert isinstance(Remote.get("http://myremote.com/"), Remote)
示例#12
0
 def testItShouldRemoveARemote(self):
     Configuration._Configuration__config = self.mockConfigWithRemotes(["http://myremote.com/"])
     
     assert Remote.delete("http://myremote.com/")
     assert Remote.all() == []
示例#13
0
 def testItShouldNotReAddARemote(self):
     Configuration._Configuration__config = self.mockConfigWithRemotes(["http://myremote.com/"])
     
     assert not Remote.create("http://myremote.com/")
     assert Remote.all() == ["http://myremote.com/"]
示例#14
0
 def testItShouldRetrieveAllWithoutAConfigFile(self):
     Configuration._Configuration__config = self.mockConfigWithoutRemotes()
     # if there are no remotes specified, we should create a default one pointing
     # to the Github repository
     
     assert Remote.all() == ['https://raw.github.com/mwrlabs/mercury-modules/repository/']
示例#15
0
 def testItShouldRetrieveASingleRemote(self):
     Configuration._Configuration__config = self.mockConfigWithRemotes(['http://www.mercury.com'])
     
     assert Remote.all() == ['http://www.mercury.com']
示例#16
0
 def testItShouldRetrieveNoRemotes(self):
     Configuration._Configuration__config = self.mockConfigWithRemotes([])
     
     assert Remote.all() == []