예제 #1
0
  def test_log5_revprops(self):
    """Test svn_client_log5 revprops (for typemap(in) apr_array_t *STRINGLIST)"""
    directory = urljoin(self.repos_uri+b"/", b"trunk/dir1")
    start = core.svn_opt_revision_t()
    end = core.svn_opt_revision_t()
    core.svn_opt_parse_revision(start, end, b"4:0")
    rev_range = core.svn_opt_revision_range_t()
    rev_range.start = start
    rev_range.end = end
    entry_pool = core.Pool()

    def log_entry_receiver_whole(log_entry, pool):
      """An implementation of svn_log_entry_receiver_t, holds whole log entries."""
      self.received_log_entries.append(core.svn_log_entry_dup(log_entry,
                                                              entry_pool))

    self.received_log_entries = []

    # (Python 3: pass tuple of bytes and str mixture as revprops argment)
    client.log5((directory,), start, (rev_range,), 1, True, False, False,
                ('svn:author', b'svn:log'),
                log_entry_receiver_whole, self.client_ctx)
    self.assertEqual(len(self.received_log_entries), 1)
    revprops = self.received_log_entries[0].revprops
    self.assertEqual(revprops[b'svn:log'], b"More directories.")
    self.assertEqual(revprops[b'svn:author'], b"john")
    with self.assertRaises(KeyError):
      commit_date = revprops['svn:date']
    with self.assertRaises(UnicodeEncodeError):
      client.log5((directory,), start, (rev_range,), 1, True, False, False,
                  (u'svn:\udc61uthor', b'svn:log'),
                  log_entry_receiver_whole, self.client_ctx)
예제 #2
0
파일: client.py 프로젝트: sajeruk/svn_diff
    def test_log3_url(self):
        """Test svn_client_log3 on a file:// URL"""
        directory = urljoin(self.repos_uri + "/", "trunk/dir1")

        start = core.svn_opt_revision_t()
        end = core.svn_opt_revision_t()
        core.svn_opt_parse_revision(start, end, "4:0")
        client.log3((directory,), start, start, end, 1, True, False, self.log_receiver, self.client_ctx)
        self.assertEqual(self.change_author, "john")
        self.assertEqual(self.log_message, "More directories.")
        self.assertEqual(len(self.changed_paths), 3)
        for dir in ("/trunk/dir1", "/trunk/dir2", "/trunk/dir3"):
            self.assert_(dir in self.changed_paths)
            self.assertEqual(self.changed_paths[dir].action, "A")
예제 #3
0
  def test_log3_url(self):
    """Test svn_client_log3 on a file:// URL"""
    directory = urljoin(self.repos_uri+b"/", b"trunk/dir1")

    start = core.svn_opt_revision_t()
    end = core.svn_opt_revision_t()
    core.svn_opt_parse_revision(start, end, b"4:0")
    client.log3((directory,), start, start, end, 1, True, False,
        self.log_receiver, self.client_ctx)
    self.assertEqual(self.change_author, b"john")
    self.assertEqual(self.log_message, b"More directories.")
    self.assertEqual(len(self.changed_paths), 3)
    for dir in (b'/trunk/dir1', b'/trunk/dir2', b'/trunk/dir3'):
      self.assertTrue(dir in self.changed_paths)
      self.assertEqual(self.changed_paths[dir].action, b'A')
예제 #4
0
    def test_log3_url(self):
        """Test svn_client_log3 on a file:// URL"""
        dir = urljoin(REPOS_URL + "/", "trunk/dir1")

        start = core.svn_opt_revision_t()
        end = core.svn_opt_revision_t()
        core.svn_opt_parse_revision(start, end, "4:0")
        client.log3((dir, ), start, start, end, 1, True, False,
                    self.log_receiver, self.client_ctx)
        self.assertEqual(self.change_author, "john")
        self.assertEqual(self.log_message, "More directories.")
        self.assertEqual(len(self.changed_paths), 3)
        for dir in ('/trunk/dir1', '/trunk/dir2', '/trunk/dir3'):
            self.assert_(self.changed_paths.has_key(dir))
            self.assertEqual(self.changed_paths[dir].action, 'A')
예제 #5
0
파일: client.py 프로젝트: vocho/openqnx
  def test_log3_url(self):
    """Test svn_client_log3 on a file:// URL"""
    dir = urljoin(REPOS_URL+"/", "trunk/dir1")

    start = core.svn_opt_revision_t()
    end = core.svn_opt_revision_t()
    core.svn_opt_parse_revision(start, end, "4:0")
    client.log3((dir,), start, start, end, 1, True, False, self.log_receiver,
        self.client_ctx)
    self.assertEqual(self.change_author, "john")
    self.assertEqual(self.log_message, "More directories.")
    self.assertEqual(len(self.changed_paths), 3)
    for dir in ('/trunk/dir1', '/trunk/dir2', '/trunk/dir3'):
      self.assert_(self.changed_paths.has_key(dir))
      self.assertEqual(self.changed_paths[dir].action, 'A')
예제 #6
0
    def test_log5_revprops(self):
        """Test svn_client_log5 revprops (for typemap(in) apr_array_t *STRINGLIST)"""
        directory = urljoin(self.repos_uri + b"/", b"trunk/dir1")
        start = core.svn_opt_revision_t()
        end = core.svn_opt_revision_t()
        core.svn_opt_parse_revision(start, end, b"4:0")
        rev_range = core.svn_opt_revision_range_t()
        rev_range.start = start
        rev_range.end = end
        entry_pool = core.Pool()

        def log_entry_receiver_whole(log_entry, pool):
            """An implementation of svn_log_entry_receiver_t, holds whole log entries."""
            self.received_log_entries.append(
                core.svn_log_entry_dup(log_entry, entry_pool))

        self.received_log_entries = []

        # (Pass tuple of bytes and str(unicode) mixture as revprops argument)
        client.log5((directory, ), start, (rev_range, ), 1, True, False, False,
                    (u'svn:author', b'svn:log'), log_entry_receiver_whole,
                    self.client_ctx)
        self.assertEqual(len(self.received_log_entries), 1)
        revprops = self.received_log_entries[0].revprops
        self.assertEqual(revprops[b'svn:log'], b"More directories.")
        self.assertEqual(revprops[b'svn:author'], b"john")
        with self.assertRaises(KeyError):
            commit_date = revprops['svn:date']
        if utils.IS_PY3 or not utils.is_defaultencoding_utf8():
            # 'utf-8' codecs on Python 2 does not raise UnicodeEncodeError
            # on surrogate code point U+dc00 - U+dcff. So we need to skip
            # below in such a case.
            with self.assertRaises(UnicodeEncodeError):
                client.log5((directory, ), start, (rev_range, ), 1, True,
                            False, False, (u'svn:\udc61uthor', b'svn:log'),
                            log_entry_receiver_whole, self.client_ctx)