コード例 #1
0
ファイル: test_wc.py プロジェクト: ramakrishna-n/subvertpy
 def test_status(self):
     repos_url = self.make_client("repos", "checkout")
     self.build_tree({"checkout/bar": "text"})
     self.client_add('checkout/bar')
     adm = wc.WorkingCopy(None, "checkout")
     self.assertEqual(wc.STATUS_ADDED, adm.status('bar').status)
     self.client_commit("checkout", "foo")
     adm = wc.WorkingCopy(None, "checkout")
     self.assertEqual(wc.STATUS_NORMAL, adm.status('bar').status)
コード例 #2
0
ファイル: test_client.py プロジェクト: mwhudson/subvertpy
 def test_add_recursive(self):
     self.build_tree({"dc/trunk/foo": b'bla', "dc/trunk": None})
     self.client.add("dc/trunk")
     if getattr(wc, "WorkingCopy", None) is None:
         raise SkipTest(
             "subversion 1.7 API not supported for WorkingCopy yet")
     adm = wc.WorkingCopy(None, os.path.join(os.getcwd(), "dc"))
     e = adm.entry(os.path.join(os.getcwd(), "dc", "trunk"))
     self.assertEqual(e.kind, NODE_DIR)
     adm2 = wc.WorkingCopy(None, os.path.join(os.getcwd(), "dc", "trunk"))
     e = adm2.entry(os.path.join(os.getcwd(), "dc", "trunk", "foo"))
     self.assertEqual(e.kind, NODE_FILE)
     self.assertEqual(e.revision, 0)
コード例 #3
0
ファイル: test_wc.py プロジェクト: ramakrishna-n/subvertpy
 def test_entry(self):
     repos_url = self.make_client("repos", "checkout")
     self.build_tree({"checkout/bar": "\x00\x01"})
     self.client_add('checkout/bar')
     adm = wc.WorkingCopy(None, "checkout")
     entry = adm.entry("checkout/bar")
     self.assertEqual("bar", entry.name)
     self.assertEqual(NODE_FILE, entry.kind)
     self.assertEqual(0, entry.revision)
     self.client_commit("checkout", "msg")
     adm = wc.WorkingCopy(None, "checkout")
     entry = adm.entry("checkout/bar")
     self.assertEqual("bar", entry.name)
     self.assertEqual(NODE_FILE, entry.kind)
     self.assertEqual(1, entry.revision)
コード例 #4
0
ファイル: test_wc.py プロジェクト: ramakrishna-n/subvertpy
 def test_is_wc_root(self):
     repos_url = self.make_client("repos", ".")
     self.build_tree({"bar": None})
     self.client_add('bar')
     adm = wc.WorkingCopy(None, ".")
     self.assertTrue(adm.is_wc_root(self.test_dir))
     self.assertFalse(adm.is_wc_root(os.path.join(self.test_dir, "bar")))
コード例 #5
0
ファイル: test_wc.py プロジェクト: ramakrishna-n/subvertpy
 def test_remove_from_revision_control(self):
     repos_url = self.make_client("repos", "checkout")
     self.build_tree({"checkout/bar": "\x00\x01"})
     self.client_add('checkout/bar')
     adm = wc.WorkingCopy(None, "checkout", True)
     adm.remove_from_revision_control("bar")
     self.assertTrue(os.path.exists("checkout/bar"))
コード例 #6
0
ファイル: test_wc.py プロジェクト: ramakrishna-n/subvertpy
 def test_committed_queue(self):
     if getattr(wc, "CommittedQueue", None) is None:
         raise SkipTest("CommittedQueue not available")
     cq = wc.CommittedQueue()
     repos_url = self.make_client("repos", "checkout")
     adm = wc.WorkingCopy(None, "checkout", True)
     adm.process_committed_queue(cq, 1, "2010-05-31T08:49:22.430000Z", "jelmer")
コード例 #7
0
ファイル: test_wc.py プロジェクト: ramakrishna-n/subvertpy
 def test_mark_missing_deleted(self):
     repos_url = self.make_client("repos", "checkout")
     self.build_tree({"checkout/bar": "\x00\x01"})
     self.client_add('checkout/bar')
     adm = wc.WorkingCopy(None, "checkout", True)
     os.remove("checkout/bar")
     adm.mark_missing_deleted("checkout/bar")
     self.assertFalse(os.path.exists("checkout/bar"))
コード例 #8
0
ファイル: test_wc.py プロジェクト: ramakrishna-n/subvertpy
 def test_get_ancestry(self):
     repos_url = self.make_client("repos", "checkout")
     self.build_tree({"checkout/bar": "\x00\x01"})
     self.client_add('checkout/bar')
     adm = wc.WorkingCopy(None, "checkout")
     path = os.path.join(self.test_dir, "checkout/bar")
     self.assertEqual(("%s/bar" % repos_url, 0), adm.get_ancestry("checkout/bar"))
     adm.close()
コード例 #9
0
ファイル: test_wc.py プロジェクト: ramakrishna-n/subvertpy
 def test_has_binary_prop(self):
     repos_url = self.make_client("repos", "checkout")
     self.build_tree({"checkout/bar": "\x00\x01"})
     self.client_add('checkout/bar')
     adm = wc.WorkingCopy(None, "checkout")
     path = os.path.join(self.test_dir, "checkout/bar")
     self.assertFalse(adm.has_binary_prop(path))
     adm.close()
コード例 #10
0
ファイル: test_wc.py プロジェクト: ramakrishna-n/subvertpy
 def test_prop_set(self):
     repos_url = self.make_client("repos", "checkout")
     self.build_tree({"checkout/bar": "file"})
     self.client_add('checkout/bar')
     adm = wc.WorkingCopy(None, "checkout", True)
     adm.prop_set("aprop", "avalue", "checkout/bar")
     self.assertEqual(adm.prop_get("aprop", "checkout/bar"), "avalue")
     adm.prop_set("aprop", None, "checkout/bar")
     self.assertEqual(adm.prop_get("aprop", "checkout/bar"), None)
コード例 #11
0
ファイル: test_wc.py プロジェクト: ramakrishna-n/subvertpy
 def test_probe_try(self):
     repos_url = self.make_client("repos", "checkout")
     self.build_tree({"checkout/bar": "la"})
     self.client_add('checkout/bar')
     adm = wc.WorkingCopy(None, "checkout", True)
     try:
         self.assertIs(None, adm.probe_try(self.test_dir))
     except subvertpy.SubversionException, (msg, num):
         if num != subvertpy.ERR_WC_NOT_WORKING_COPY:
             raise
コード例 #12
0
ファイル: test_wc.py プロジェクト: ramakrishna-n/subvertpy
 def test_translated_stream(self):
     repos_url = self.make_client("repos", "checkout")
     self.build_tree({"checkout/bar": "My id: $Id$"})
     self.client_add('checkout/bar')
     self.client_set_prop("checkout/bar", "svn:keywords", "Id\n")
     self.client_commit("checkout", "foo")
     adm = wc.WorkingCopy(None, "checkout", True)
     path = os.path.join(self.test_dir, "checkout/bar")
     stream = adm.translated_stream(path, path, wc.TRANSLATE_TO_NF)
     self.assertTrue(stream.read().startswith("My id: $Id: "))
コード例 #13
0
ファイル: test_wc.py プロジェクト: ramakrishna-n/subvertpy
 def test_props_modified(self):
     repos_url = self.make_client("repos", "checkout")
     self.build_tree({"checkout/bar": "My id: $Id$"})
     self.client_add('checkout/bar')
     self.client_set_prop("checkout/bar", "svn:keywords", "Id\n")
     self.client_commit("checkout", "foo")
     adm = wc.WorkingCopy(None, "checkout", True)
     self.assertFalse(adm.props_modified("checkout/bar"))
     adm.prop_set("aprop", "avalue", "checkout/bar")
     self.assertTrue(adm.props_modified("checkout/bar"))
コード例 #14
0
ファイル: test_wc.py プロジェクト: ramakrishna-n/subvertpy
 def test_process_committed_queue(self):
     repos_url = self.make_client("repos", "checkout")
     self.build_tree({"checkout/bar": "la"})
     self.client_add('checkout/bar')
     adm = wc.WorkingCopy(None, "checkout", True)
     cq = wc.CommittedQueue()
     cq.queue(os.path.join(self.test_dir, "checkout/bar"), adm)
     adm.process_committed_queue(cq, 1, "2010-05-31T08:49:22.430000Z", "jelmer")
     bar = adm.entry("checkout/bar")
     self.assertEqual("bar", bar.name)
     self.assertEqual(NODE_FILE, bar.kind)
     self.assertEqual(wc.SCHEDULE_ADD, bar.schedule)
コード例 #15
0
ファイル: test_wc.py プロジェクト: ramakrishna-n/subvertpy
    def test_transmit_text_deltas(self):
        repos_url = self.make_client("repos", ".")
        self.build_tree({"bar": "blala"})
        self.client_add('bar')
        adm = wc.WorkingCopy(None, ".", True)
        class Editor(object):
            """Editor"""

            def __init__(self):
                self._windows = []

            def apply_textdelta(self, checksum):
                def window_handler(window):
                    self._windows.append(window)
                return window_handler

            def close(self):
                pass
        editor = Editor()
        (tmpfile, digest) = adm.transmit_text_deltas("bar", True, editor)
        self.assertEqual(editor._windows, [(0L, 0, 5, 0, [(2, 0, 5)], 'blala'), None])
        self.assertIsInstance(tmpfile, str)
        self.assertEqual(16, len(digest))

        bar = adm.entry("bar")
        self.assertEqual(-1, bar.cmt_rev)
        self.assertEqual(0, bar.revision)

        cq = wc.CommittedQueue()
        cq.queue("bar", adm)
        adm.process_committed_queue(cq, 1, "2010-05-31T08:49:22.430000Z", "jelmer")
        bar = adm.entry("bar")
        self.assertEqual("bar", bar.name)
        self.assertEqual(NODE_FILE, bar.kind)
        self.assertEqual(wc.SCHEDULE_NORMAL, bar.schedule)
        self.assertIs(None, bar.checksum)
        self.assertEqual(1, bar.cmt_rev)
        self.assertEqual(1, bar.revision)
コード例 #16
0
ファイル: test_wc.py プロジェクト: ramakrishna-n/subvertpy
 def test_entry_not_found(self):
     repos_url = self.make_client("repos", "checkout")
     adm = wc.WorkingCopy(None, "checkout")
     self.assertRaises(KeyError, adm.entry, "bar")
コード例 #17
0
ファイル: wc.py プロジェクト: mwhudson/subvertpy
#!/usr/bin/python
# Demonstrates how to do access the working tree using subvertpy

import os
from subvertpy import client, repos, wc
from subvertpy.ra import Auth, get_username_provider

# Create a repository
repos.create("tmprepo")

c = client.Client(auth=Auth([get_username_provider()]))
c.checkout("file://" + os.getcwd() + "/tmprepo", "tmpco", "HEAD")

w = wc.WorkingCopy(None, "tmpco")
print(w)
entry = w.entry("tmpco")
print(entry.revision)
print(entry.url)
コード例 #18
0
ファイル: test_wc.py プロジェクト: ramakrishna-n/subvertpy
 def test_add_repos_file(self):
     repos_url = self.make_client("repos", "checkout")
     adm = wc.WorkingCopy(None, "checkout", True)
     adm.add_repos_file("checkout/bar", StringIO("basecontents"), StringIO("contents"), {}, {})
     self.assertEqual("basecontents", wc.get_pristine_contents("checkout/bar").read())
コード例 #19
0
ファイル: test_wc.py プロジェクト: ramakrishna-n/subvertpy
 def test_relocate(self):
     repos_url = self.make_client("repos", "checkout")
     adm = wc.WorkingCopy(None, "checkout", True)
     adm.relocate("checkout", "file://", "http://")
コード例 #20
0
ファイル: test_wc.py プロジェクト: ramakrishna-n/subvertpy
 def test_maybe_set_repos_root(self):
     repos_url = self.make_client("repos", "checkout")
     adm = wc.WorkingCopy(None, "checkout")
     adm.maybe_set_repos_root(os.path.join(self.test_dir, "checkout"), repos_url)
     adm.close()