Finds a list of new pull requests that need to be processed.

        :arg testpulls: a list of tserver.FakePull instances so we can test the code
          functionality without making live requests to github.

def find_pulls(self, testpulls=None):
        """Finds a list of new pull requests that need to be processed.

        :arg testpulls: a list of tserver.FakePull instances so we can test the code
          functionality without making live requests to github.
        """
        #We check all the repositories installed for new (open) pull requests.
        #If any exist, we check the pull request number against our archive to
        #see if we have to do anything for it.
        result = {}
        for lname, repo in self.repositories.items():
            if lname not in self.archive:
                raise ValueError("Trying to find pull requests for a repository "
                                 "that hasn't been installed. Use server.install().")
            if self.runnable is not None and lname not in self.runnable:
                #We just ignore this repository completely and don't even bother
                #performing a live check on github.
                continue
            
            pulls = testpulls if testpulls is not None else repo.repo.get_pulls("open")
            result[lname] = []
            for pull in pulls:
                newpull = True
                if pull.snumber in self.archive[lname]:
                    #Check the status of that pull request processing. If it was
                    #successful, we just ignore this open pull request; it is
                    #obviously waiting to be merged in.
                    if self.archive[lname][pull.snumber]["completed"] == True:
                        newpull = False

                if newpull:
                    #Add the pull request to the list that needs to be processed.
                    #We don't add the request to the archive yet because the
                    #processing step hasn't happened yet.
                    result[lname].append(PullRequest(self, repo, pull, testpulls is not None))

        return result