Mercurial > hg
view tests/test-tools.t @ 51721:ed28085827ec
typing: explicitly type some `mercurial.util` eol code to avoid @overload
Unlike the previous commit, this makes a material difference in the generated
stub file- the `pycompat.identity()` aliases generated an @overload like this:
@overload
def fromnativeeol(a: _T0) -> _T0: ...
... which might fail to detect a bad argument, like str. This drops the
@overload for the 3 related methods, so there's a single definition for each.
The `typelib.BinaryIO_Proxy` is used for subclassing (the same as was done in
8147abc05794), so that it is a `BinaryIO` type during type checking, but still
inherits `object` at runtime. That way, we don't need to implement unused
abstract methods.
author | Matt Harbison <matt_harbison@yahoo.com> |
---|---|
date | Fri, 19 Jul 2024 16:49:46 -0400 |
parents | 9172bd49cedc |
children | 92a708af7b05 |
line wrap: on
line source
Tests of the file helper tool $ f -h ?sage: f [options] [filenames] (glob) ?ptions: (glob) -h, --help show this help message and exit -t, --type show file type (file or directory) -m, --mode show file mode -l, --links show number of links -s, --size show size of file -n NEWER, --newer=NEWER check if file is newer (or same) -r, --recurse recurse into directories -S, --sha1 show sha1 hash of the content --raw-sha1 show raw bytes of the sha1 hash of the content --sha256 show sha256 hash of the content -M, --md5 show md5 hash of the content -D, --dump dump file content -H, --hexdump hexdump file content -B BYTES, --bytes=BYTES number of characters to dump -L LINES, --lines=LINES number of lines to dump -q, --quiet no default output $ mkdir dir $ cd dir $ f --size size=0 $ echo hello | f --md5 --size size=6, md5=b1946ac92492d2347c6235b4d2611184 $ f foo foo: file not found $ echo foo > foo $ f foo foo: $ f --sha1 foo foo: sha1=f1d2d2f924e986ac86fdf7b36c94bcdf32beec15 $ f --sha256 foo foo: sha256=b5bb9d8014a0f9b1d61e21e796d78dccdf1352f23cd32812f4850b878ae4944c #if symlink $ f foo --mode foo: mode=644 #endif #if no-windows $ "$PYTHON" $TESTDIR/seq.py 10 > bar #else Convert CRLF -> LF for consistency $ "$PYTHON" $TESTDIR/seq.py 10 | sed "s/$//" > bar #endif #if unix-permissions symlink $ chmod +x bar $ f bar --newer foo --mode --type --size --dump --links --bytes 7 bar: file, size=21, mode=755, links=1, newer than foo >>> 1 2 3 4 <<< no trailing newline #endif #if unix-permissions $ ln bar baz $ f bar -n baz -l --hexdump -t --sha1 --lines=9 -B 20 bar: file, links=2, newer than baz, sha1=612ca68d0305c821750a 0000: 31 0a 32 0a 33 0a 34 0a 35 0a 36 0a 37 0a 38 0a |1.2.3.4.5.6.7.8.| 0010: 39 0a |9.| $ rm baz #endif #if unix-permissions symlink $ ln -s yadda l $ f . --recurse -MStmsB4 .: directory with 3 files, mode=755 ./bar: file, size=21, mode=755, md5=3b03, sha1=612c ./foo: file, size=4, mode=644, md5=d3b0, sha1=f1d2 ./l: link, size=5, md5=2faa, sha1=af93 #endif $ f --quiet bar -DL 3 1 2 3 $ cd .. Yadda is a symlink $ f -qr dir -HB 17 dir: directory with 3 files (symlink !) dir: directory with 2 files (no-symlink !) dir/bar: 0000: 31 0a 32 0a 33 0a 34 0a 35 0a 36 0a 37 0a 38 0a |1.2.3.4.5.6.7.8.| 0010: 39 |9| dir/foo: 0000: 66 6f 6f 0a |foo.| dir/l: (symlink !) 0000: 79 61 64 64 61 |yadda| (symlink !)