Я конвертирую hglib-python в hglib-erlang. В файле test-diff.py, код питона выглядит следующим образом:исходный код, двоичный, список, продолжение строки
import common
class test_diff(common.basetest):
def test_basic(self):
self.append('a', 'a\n')
self.client.add('a')
diff1 = """diff -r 000000000000 a
--- /dev/null
+++ b/a
@@ -0,0 +1,1 @@
+a
"""
self.assertEquals(diff1, self.client.diff(nodates=True))
self.assertEquals(diff1, self.client.diff(['a'], nodates=True))
rev0, node0 = self.client.commit('first')
diff2 = """diff -r 000000000000 -r %s a
--- /dev/null
+++ b/a
@@ -0,0 +1,1 @@
+a
""" % node0[:12]
self.assertEquals(diff2, self.client.diff(change=rev0, nodates=True))
self.append('a', 'a\n')
rev1, node1 = self.client.commit('second')
diff3 = """diff -r %s a
--- a/a
+++ b/a
@@ -1,1 +1,2 @@
a
+a
""" % node0[:12]
self.assertEquals(diff3, self.client.diff(revs=[rev0], nodates=True))
diff4 = """diff -r %s -r %s a
--- a/a
+++ b/a
@@ -1,1 +1,2 @@
a
+a
""" % (node0[:12], node1[:12])
self.assertEquals(diff4, self.client.diff(revs=[rev0, rev1], nodates=True))
Для моего hglib-Erlang, первая функция преобразуется следующим образом:
diff_test_a()->
teardown(push),
setup(push),
{ok,Pid} = emercurial_client:start_link('none','UTF-8','none',true),
append("a","a\n"),
true = emercurial_client:add(Pid,#add{files=['a']}),
Diff1 =
<<"diff -r 000000000000 a\n--- /dev/null\n+++ b/a\[email protected]@ -0,0 +1,1 @@\n+a\n">>,
Result = emercurial_client:diff(Pid,#diff{nodates=true}),
error_logger:info_report([client_tests_diff_test_1,Result]),
?assertMatch(Diff1,Result).
выше Diff1
матч линия слишком долго, что продолжение строки для erlang binary
типа? Кроме того, как написать продолжение строки для erlang list
типа? просто ++
операция?