示例#1
0
  def testBasicPlugins(self):
    app = Factory(self.config)

    self.assertTrue(interfaces.IAuth.providedBy(app.getAuth()))
    self.assertTrue(interfaces.IRequestHandler.providedBy(app.getRequestHandler()))
    self.assertTrue(interfaces.IExceptionHandler.providedBy(app.getErrorHandler()))
    self.assertTrue(interfaces.IRepositoryRouter.providedBy(app.getRepositoryRouter()))
示例#2
0
class RepositoryRouterTests(GitTestHelper):
    def setUp(self):
        GitTestHelper.setUp(self)

        self.config = _createDefaultConfigFile(self.repoPath)

        pluginPackages = {IRepositoryRouter: plugins}

        self.app = Factory(self.config, pluginPackages)

        self.ssh = reactor.listenTCP(0, self.app.createSSHFactory())
        self.http = reactor.listenTCP(0, self.app.createHTTPFactory())

    def testInitialization(self):
        self.app._invariant()

    def testDefaultScheme(self):
        remoteRepository = self.createTemporaryRepository()
        path = self.app.getRepositoryRouter().route(
            self.app,
            ["DEFAULT", remoteRepository.path.split("/")[-1]])

        self.assertEqual(path, remoteRepository.path)

    def testCustomScheme(self):
        projectPath = tempfile.mkdtemp()

        self.app.getConfig().add_section("project")
        self.app.getConfig().set("project", "repositoryPath", projectPath)

        remoteRepository = self.createTemporaryRepository(path=projectPath)
        path = self.app.getRepositoryRouter().route(
            self.app,
            ["project", remoteRepository.path.split("/")[-1]])

        self.assertEqual(path, remoteRepository.path)

        shutil.rmtree(projectPath)

    def testMultipleCustomScheme(self):
        projectPath = tempfile.mkdtemp()
        sandboxPath = tempfile.mkdtemp()

        self.app.getConfig().add_section("project")
        self.app.getConfig().set("project", "repositoryPath", projectPath)

        self.app.getConfig().add_section("sandbox")
        self.app.getConfig().set("sandbox", "repositoryPath", sandboxPath)

        remoteProjectRepository = self.createTemporaryRepository(
            path=projectPath)
        path = self.app.getRepositoryRouter().route(
            self.app,
            ["project", remoteProjectRepository.path.split("/")[-1]])

        self.assertEqual(path, remoteProjectRepository.path)

        remoteSandboxRepository = self.createTemporaryRepository(
            path=sandboxPath)
        path = self.app.getRepositoryRouter().route(
            self.app,
            ["sandbox", remoteSandboxRepository.path.split("/")[-1]])

        self.assertEqual(path, remoteSandboxRepository.path)

        shutil.rmtree(projectPath)
        shutil.rmtree(sandboxPath)

    def testUnknownScheme(self):
        """This should default to the standard repository path."""

        remoteRepository = self.createTemporaryRepository()
        path = self.app.getRepositoryRouter().route(
            self.app,
            ["project", remoteRepository.path.split("/")[-1]])

        self.assertEqual(path, remoteRepository.path)

    def testUnknownRepository(self):
        path = self.app.getRepositoryRouter().route(self.app,
                                                    ["DEFAULT", "drupal"])

        self.assertEqual(path, None)

    def tearDown(self):
        self.ssh.stopListening()
        self.http.stopListening()

        GitTestHelper.tearDown(self)
class RepositoryRouterTests(GitTestHelper):
  def setUp(self):
    GitTestHelper.setUp(self)

    self.config = _createDefaultConfigFile(self.repoPath)

    pluginPackages = {
      IRepositoryRouter: plugins
    }

    self.app = Factory(self.config, pluginPackages)

    self.ssh = reactor.listenTCP(0, self.app.createSSHFactory())
    self.http = reactor.listenTCP(0, self.app.createHTTPFactory())

  def testInitialization(self):
    self.app._invariant()

  def testDefaultScheme(self):
    remoteRepository = self.createTemporaryRepository()
    path = self.app.getRepositoryRouter().route(self.app, ["DEFAULT", remoteRepository.path.split("/")[-1]])

    self.assertEqual(path, remoteRepository.path)

  def testCustomScheme(self):
    projectPath = tempfile.mkdtemp()

    self.app.getConfig().add_section("project")
    self.app.getConfig().set("project", "repositoryPath", projectPath)

    remoteRepository = self.createTemporaryRepository(path=projectPath)
    path = self.app.getRepositoryRouter().route(self.app, ["project", remoteRepository.path.split("/")[-1]])

    self.assertEqual(path, remoteRepository.path)

    shutil.rmtree(projectPath)

  def testMultipleCustomScheme(self):
    projectPath = tempfile.mkdtemp()
    sandboxPath = tempfile.mkdtemp()

    self.app.getConfig().add_section("project")
    self.app.getConfig().set("project", "repositoryPath", projectPath)

    self.app.getConfig().add_section("sandbox")
    self.app.getConfig().set("sandbox", "repositoryPath", sandboxPath)

    remoteProjectRepository = self.createTemporaryRepository(path=projectPath)
    path = self.app.getRepositoryRouter().route(self.app, ["project", remoteProjectRepository.path.split("/")[-1]])

    self.assertEqual(path, remoteProjectRepository.path)

    remoteSandboxRepository = self.createTemporaryRepository(path=sandboxPath)
    path = self.app.getRepositoryRouter().route(self.app, ["sandbox", remoteSandboxRepository.path.split("/")[-1]])

    self.assertEqual(path, remoteSandboxRepository.path)

    shutil.rmtree(projectPath)
    shutil.rmtree(sandboxPath)

  def testUnknownScheme(self):
    """This should default to the standard repository path."""

    remoteRepository = self.createTemporaryRepository()
    path = self.app.getRepositoryRouter().route(self.app, ["project", remoteRepository.path.split("/")[-1]])

    self.assertEqual(path, remoteRepository.path)

  def testUnknownRepository(self):
    path = self.app.getRepositoryRouter().route(self.app, ["DEFAULT", "drupal"])

    self.assertEqual(path, None)

  def tearDown(self):
    self.ssh.stopListening()
    self.http.stopListening()

    GitTestHelper.tearDown(self)