view tests/test_import.py @ 227:484b56ac4aec default tip

hglib: cat accepts a template argument
author Julien Cristau <jcristau@mozilla.com>
date Mon, 17 Jun 2024 17:17:58 +0200
parents a2afbf236ca8
children
line wrap: on
line source

import os
from tests import common
from hglib.util import b, BytesIO

patch = b("""
# HG changeset patch
# User test
# Date 0 0
# Node ID c103a3dec114d882c98382d684d8af798d09d857
# Parent  0000000000000000000000000000000000000000
1

diff -r 000000000000 -r c103a3dec114 a
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/a	Thu Jan 01 00:00:00 1970 +0000
@@ -0,0 +1,1 @@
+1
""")

class test_import(common.basetest):
    def test_basic_cstringio(self):
        self.client.import_(BytesIO(patch))
        self.assertEqual(self.client.cat([b('a')]), b('1\n'))
        self.assertEqual(self.client.cat([b('a')], template=b'{path}\\0{data}'), b('a\x001\n'))

    def test_basic_file(self):
        f = open('patch', 'wb')
        f.write(patch)
        f.close()

        # --no-commit
        self.client.import_([b('patch')], nocommit=True)
        with open('a') as f:
            self.assertEqual(f.read(), '1\n')

        self.client.update(clean=True)
        os.remove('a')

        self.client.import_([b('patch')])
        self.assertEqual(self.client.cat([b('a')]), b('1\n'))
        self.assertEqual(self.client.cat([b('a')], template=b'{path}\\0{data}'), b('a\x001\n'))