tests/test-custom-filters.t
author Manuel Jacob <me@manueljacob.de>
Thu, 15 Sep 2022 01:48:38 +0200
changeset 49494 c96ed4029fda
parent 40609 ee9981bc8b44
child 49621 55c6ebd11cb9
permissions -rw-r--r--
templates: add filter to reverse list The filter supports only lists because for lists, it’s straightforward to implement. Reversing text doesn’t seem very useful and is hard to implement. Reversing the bytes would break multi-bytes encodings. Reversing the code points would break characters consisting of multiple code points. Reversing graphemes is non-trivial without using a library not included in the standard library.
Ignore whitespace changes - Everywhere: Within whitespace: At end of lines:
12124
7edda6c7985d tests: unify test-custom-filters
Nicolas Dumazet <nicdumz.commits@gmail.com>
parents: 8742
diff changeset
     1
  $ hg init
6066
f3a8b5360100 Strip filter name from command before passing to filter function.
Jesse Glick <jesse.glick@sun.com>
parents:
diff changeset
     2
12124
7edda6c7985d tests: unify test-custom-filters
Nicolas Dumazet <nicdumz.commits@gmail.com>
parents: 8742
diff changeset
     3
  $ cat > .hg/hgrc <<EOF
7edda6c7985d tests: unify test-custom-filters
Nicolas Dumazet <nicdumz.commits@gmail.com>
parents: 8742
diff changeset
     4
  > [extensions]
7edda6c7985d tests: unify test-custom-filters
Nicolas Dumazet <nicdumz.commits@gmail.com>
parents: 8742
diff changeset
     5
  > prefixfilter = prefix.py
7edda6c7985d tests: unify test-custom-filters
Nicolas Dumazet <nicdumz.commits@gmail.com>
parents: 8742
diff changeset
     6
  > [encode]
7edda6c7985d tests: unify test-custom-filters
Nicolas Dumazet <nicdumz.commits@gmail.com>
parents: 8742
diff changeset
     7
  > *.txt = stripprefix: Copyright 2046, The Masters
7edda6c7985d tests: unify test-custom-filters
Nicolas Dumazet <nicdumz.commits@gmail.com>
parents: 8742
diff changeset
     8
  > [decode]
7edda6c7985d tests: unify test-custom-filters
Nicolas Dumazet <nicdumz.commits@gmail.com>
parents: 8742
diff changeset
     9
  > *.txt = insertprefix: Copyright 2046, The Masters
7edda6c7985d tests: unify test-custom-filters
Nicolas Dumazet <nicdumz.commits@gmail.com>
parents: 8742
diff changeset
    10
  > EOF
6066
f3a8b5360100 Strip filter name from command before passing to filter function.
Jesse Glick <jesse.glick@sun.com>
parents:
diff changeset
    11
12124
7edda6c7985d tests: unify test-custom-filters
Nicolas Dumazet <nicdumz.commits@gmail.com>
parents: 8742
diff changeset
    12
  $ cat > prefix.py <<EOF
26587
56b2bcea2529 error: get Abort from 'error' instead of 'util'
Pierre-Yves David <pierre-yves.david@fb.com>
parents: 12316
diff changeset
    13
  > from mercurial import error
12124
7edda6c7985d tests: unify test-custom-filters
Nicolas Dumazet <nicdumz.commits@gmail.com>
parents: 8742
diff changeset
    14
  > def stripprefix(s, cmd, filename, **kwargs):
38071
6e713711331b py3: add b'' prefixes in tests/test-custom-filters.t
Pulkit Goyal <7895pulkit@gmail.com>
parents: 26587
diff changeset
    15
  >     header = b'%s\n' % cmd
12124
7edda6c7985d tests: unify test-custom-filters
Nicolas Dumazet <nicdumz.commits@gmail.com>
parents: 8742
diff changeset
    16
  >     if s[:len(header)] != header:
38071
6e713711331b py3: add b'' prefixes in tests/test-custom-filters.t
Pulkit Goyal <7895pulkit@gmail.com>
parents: 26587
diff changeset
    17
  >         raise error.Abort(b'missing header "%s" in %s' % (cmd, filename))
12124
7edda6c7985d tests: unify test-custom-filters
Nicolas Dumazet <nicdumz.commits@gmail.com>
parents: 8742
diff changeset
    18
  >     return s[len(header):]
7edda6c7985d tests: unify test-custom-filters
Nicolas Dumazet <nicdumz.commits@gmail.com>
parents: 8742
diff changeset
    19
  > def insertprefix(s, cmd):
38071
6e713711331b py3: add b'' prefixes in tests/test-custom-filters.t
Pulkit Goyal <7895pulkit@gmail.com>
parents: 26587
diff changeset
    20
  >     return b'%s\n%s' % (cmd, s)
12124
7edda6c7985d tests: unify test-custom-filters
Nicolas Dumazet <nicdumz.commits@gmail.com>
parents: 8742
diff changeset
    21
  > def reposetup(ui, repo):
38071
6e713711331b py3: add b'' prefixes in tests/test-custom-filters.t
Pulkit Goyal <7895pulkit@gmail.com>
parents: 26587
diff changeset
    22
  >     repo.adddatafilter(b'stripprefix:', stripprefix)
6e713711331b py3: add b'' prefixes in tests/test-custom-filters.t
Pulkit Goyal <7895pulkit@gmail.com>
parents: 26587
diff changeset
    23
  >     repo.adddatafilter(b'insertprefix:', insertprefix)
12124
7edda6c7985d tests: unify test-custom-filters
Nicolas Dumazet <nicdumz.commits@gmail.com>
parents: 8742
diff changeset
    24
  > EOF
7edda6c7985d tests: unify test-custom-filters
Nicolas Dumazet <nicdumz.commits@gmail.com>
parents: 8742
diff changeset
    25
7edda6c7985d tests: unify test-custom-filters
Nicolas Dumazet <nicdumz.commits@gmail.com>
parents: 8742
diff changeset
    26
  $ cat > .hgignore <<EOF
7edda6c7985d tests: unify test-custom-filters
Nicolas Dumazet <nicdumz.commits@gmail.com>
parents: 8742
diff changeset
    27
  > .hgignore
7edda6c7985d tests: unify test-custom-filters
Nicolas Dumazet <nicdumz.commits@gmail.com>
parents: 8742
diff changeset
    28
  > prefix.py
7edda6c7985d tests: unify test-custom-filters
Nicolas Dumazet <nicdumz.commits@gmail.com>
parents: 8742
diff changeset
    29
  > prefix.pyc
40609
ee9981bc8b44 py3: add __pycache__ to .hgignore
Pulkit Goyal <pulkit@yandex-team.ru>
parents: 38071
diff changeset
    30
  > __pycache__/
12124
7edda6c7985d tests: unify test-custom-filters
Nicolas Dumazet <nicdumz.commits@gmail.com>
parents: 8742
diff changeset
    31
  > EOF
6066
f3a8b5360100 Strip filter name from command before passing to filter function.
Jesse Glick <jesse.glick@sun.com>
parents:
diff changeset
    32
12124
7edda6c7985d tests: unify test-custom-filters
Nicolas Dumazet <nicdumz.commits@gmail.com>
parents: 8742
diff changeset
    33
  $ cat > stuff.txt <<EOF
7edda6c7985d tests: unify test-custom-filters
Nicolas Dumazet <nicdumz.commits@gmail.com>
parents: 8742
diff changeset
    34
  > Copyright 2046, The Masters
7edda6c7985d tests: unify test-custom-filters
Nicolas Dumazet <nicdumz.commits@gmail.com>
parents: 8742
diff changeset
    35
  > Some stuff to ponder very carefully.
7edda6c7985d tests: unify test-custom-filters
Nicolas Dumazet <nicdumz.commits@gmail.com>
parents: 8742
diff changeset
    36
  > EOF
7edda6c7985d tests: unify test-custom-filters
Nicolas Dumazet <nicdumz.commits@gmail.com>
parents: 8742
diff changeset
    37
  $ hg add stuff.txt
7edda6c7985d tests: unify test-custom-filters
Nicolas Dumazet <nicdumz.commits@gmail.com>
parents: 8742
diff changeset
    38
  $ hg ci -m stuff
6066
f3a8b5360100 Strip filter name from command before passing to filter function.
Jesse Glick <jesse.glick@sun.com>
parents:
diff changeset
    39
12124
7edda6c7985d tests: unify test-custom-filters
Nicolas Dumazet <nicdumz.commits@gmail.com>
parents: 8742
diff changeset
    40
Repository data:
6066
f3a8b5360100 Strip filter name from command before passing to filter function.
Jesse Glick <jesse.glick@sun.com>
parents:
diff changeset
    41
12124
7edda6c7985d tests: unify test-custom-filters
Nicolas Dumazet <nicdumz.commits@gmail.com>
parents: 8742
diff changeset
    42
  $ hg cat stuff.txt
7edda6c7985d tests: unify test-custom-filters
Nicolas Dumazet <nicdumz.commits@gmail.com>
parents: 8742
diff changeset
    43
  Some stuff to ponder very carefully.
7edda6c7985d tests: unify test-custom-filters
Nicolas Dumazet <nicdumz.commits@gmail.com>
parents: 8742
diff changeset
    44
7edda6c7985d tests: unify test-custom-filters
Nicolas Dumazet <nicdumz.commits@gmail.com>
parents: 8742
diff changeset
    45
Fresh checkout:
6066
f3a8b5360100 Strip filter name from command before passing to filter function.
Jesse Glick <jesse.glick@sun.com>
parents:
diff changeset
    46
12124
7edda6c7985d tests: unify test-custom-filters
Nicolas Dumazet <nicdumz.commits@gmail.com>
parents: 8742
diff changeset
    47
  $ rm stuff.txt
7edda6c7985d tests: unify test-custom-filters
Nicolas Dumazet <nicdumz.commits@gmail.com>
parents: 8742
diff changeset
    48
  $ hg up -C
7edda6c7985d tests: unify test-custom-filters
Nicolas Dumazet <nicdumz.commits@gmail.com>
parents: 8742
diff changeset
    49
  1 files updated, 0 files merged, 0 files removed, 0 files unresolved
7edda6c7985d tests: unify test-custom-filters
Nicolas Dumazet <nicdumz.commits@gmail.com>
parents: 8742
diff changeset
    50
  $ cat stuff.txt
7edda6c7985d tests: unify test-custom-filters
Nicolas Dumazet <nicdumz.commits@gmail.com>
parents: 8742
diff changeset
    51
  Copyright 2046, The Masters
7edda6c7985d tests: unify test-custom-filters
Nicolas Dumazet <nicdumz.commits@gmail.com>
parents: 8742
diff changeset
    52
  Some stuff to ponder very carefully.
12125
e5ccb9ea8266 test-custom-filter: heredoc is not required for single line operations
Nicolas Dumazet <nicdumz.commits@gmail.com>
parents: 12124
diff changeset
    53
  $ echo "Very very carefully." >> stuff.txt
12124
7edda6c7985d tests: unify test-custom-filters
Nicolas Dumazet <nicdumz.commits@gmail.com>
parents: 8742
diff changeset
    54
  $ hg stat
7edda6c7985d tests: unify test-custom-filters
Nicolas Dumazet <nicdumz.commits@gmail.com>
parents: 8742
diff changeset
    55
  M stuff.txt
6066
f3a8b5360100 Strip filter name from command before passing to filter function.
Jesse Glick <jesse.glick@sun.com>
parents:
diff changeset
    56
12125
e5ccb9ea8266 test-custom-filter: heredoc is not required for single line operations
Nicolas Dumazet <nicdumz.commits@gmail.com>
parents: 12124
diff changeset
    57
  $ echo "Unauthorized material subject to destruction." > morestuff.txt
12124
7edda6c7985d tests: unify test-custom-filters
Nicolas Dumazet <nicdumz.commits@gmail.com>
parents: 8742
diff changeset
    58
7edda6c7985d tests: unify test-custom-filters
Nicolas Dumazet <nicdumz.commits@gmail.com>
parents: 8742
diff changeset
    59
Problem encoding:
6066
f3a8b5360100 Strip filter name from command before passing to filter function.
Jesse Glick <jesse.glick@sun.com>
parents:
diff changeset
    60
12124
7edda6c7985d tests: unify test-custom-filters
Nicolas Dumazet <nicdumz.commits@gmail.com>
parents: 8742
diff changeset
    61
  $ hg add morestuff.txt
7edda6c7985d tests: unify test-custom-filters
Nicolas Dumazet <nicdumz.commits@gmail.com>
parents: 8742
diff changeset
    62
  $ hg ci -m morestuff
7edda6c7985d tests: unify test-custom-filters
Nicolas Dumazet <nicdumz.commits@gmail.com>
parents: 8742
diff changeset
    63
  abort: missing header "Copyright 2046, The Masters" in morestuff.txt
12316
4134686b83e1 tests: add exit codes to unified tests
Matt Mackall <mpm@selenic.com>
parents: 12125
diff changeset
    64
  [255]
12124
7edda6c7985d tests: unify test-custom-filters
Nicolas Dumazet <nicdumz.commits@gmail.com>
parents: 8742
diff changeset
    65
  $ hg stat
7edda6c7985d tests: unify test-custom-filters
Nicolas Dumazet <nicdumz.commits@gmail.com>
parents: 8742
diff changeset
    66
  M stuff.txt
7edda6c7985d tests: unify test-custom-filters
Nicolas Dumazet <nicdumz.commits@gmail.com>
parents: 8742
diff changeset
    67
  A morestuff.txt