Mercurial > public > mercurial-scm > hg-stable
view tests/test-filelog.py @ 48525:7caaefa48794
pytype: stop excluding chgserver.py
This teaches pytype about some lazy initialization, and avoids the following:
File "/mnt/c/Users/Matt/hg/mercurial/chgserver.py", line 666, in _checkextensions:
No attribute '_hashstate' on chgunixservicehandler [attribute-error]
File "/mnt/c/Users/Matt/hg/mercurial/chgserver.py", line 672, in _checkextensions:
No attribute '_hashstate' on chgunixservicehandler [attribute-error]
File "/mnt/c/Users/Matt/hg/mercurial/chgserver.py", line 677, in _bind:
No attribute '_realaddress' on chgunixservicehandler [attribute-error]
File "/mnt/c/Users/Matt/hg/mercurial/chgserver.py", line 683, in _bind:
No attribute '_realaddress' on chgunixservicehandler [attribute-error]
File "/mnt/c/Users/Matt/hg/mercurial/chgserver.py", line 686, in _createsymlink:
No attribute '_baseaddress' on chgunixservicehandler [attribute-error]
File "/mnt/c/Users/Matt/hg/mercurial/chgserver.py", line 686, in _createsymlink:
No attribute '_realaddress' on chgunixservicehandler [attribute-error]
File "/mnt/c/Users/Matt/hg/mercurial/chgserver.py", line 688, in _createsymlink:
No attribute '_baseaddress' on chgunixservicehandler [attribute-error]
File "/mnt/c/Users/Matt/hg/mercurial/chgserver.py", line 689, in _createsymlink:
No attribute '_realaddress' on chgunixservicehandler [attribute-error]
File "/mnt/c/Users/Matt/hg/mercurial/chgserver.py", line 690, in _createsymlink:
No attribute '_baseaddress' on chgunixservicehandler [attribute-error]
Differential Revision: https://phab.mercurial-scm.org/D11926
author | Matt Harbison <matt_harbison@yahoo.com> |
---|---|
date | Tue, 14 Dec 2021 17:06:32 -0500 |
parents | 23f5ed6dbcb1 |
children | 6000f5b25c9b |
line wrap: on
line source
#!/usr/bin/env python """ Tests the behavior of filelog w.r.t. data starting with '\1\n' """ from __future__ import absolute_import, print_function from mercurial.node import hex from mercurial import ( hg, ui as uimod, ) myui = uimod.ui.load() repo = hg.repository(myui, path=b'.', create=True) fl = repo.file(b'foobar') def addrev(text, renamed=False): if renamed: # data doesn't matter. Just make sure filelog.renamed() returns True meta = {b'copyrev': hex(repo.nullid), b'copy': b'bar'} else: meta = {} lock = t = None try: lock = repo.lock() t = repo.transaction(b'commit') node = fl.add(text, meta, t, 0, repo.nullid, repo.nullid) return node finally: if t: t.close() if lock: lock.release() def error(text): print('ERROR: ' + text) textwith = b'\1\nfoo' without = b'foo' node = addrev(textwith) if not textwith == fl.read(node): error('filelog.read for data starting with \\1\\n') if fl.cmp(node, textwith) or not fl.cmp(node, without): error('filelog.cmp for data starting with \\1\\n') if fl.size(0) != len(textwith): error( 'FIXME: This is a known failure of filelog.size for data starting ' 'with \\1\\n' ) node = addrev(textwith, renamed=True) if not textwith == fl.read(node): error('filelog.read for a renaming + data starting with \\1\\n') if fl.cmp(node, textwith) or not fl.cmp(node, without): error('filelog.cmp for a renaming + data starting with \\1\\n') if fl.size(1) != len(textwith): error('filelog.size for a renaming + data starting with \\1\\n') print('OK.')