tests/test-mailmap.t
author Matt Harbison <matt_harbison@yahoo.com>
Sat, 21 Nov 2020 15:34:54 -0500
changeset 45898 4f6816e8440b
parent 37260 8e57c3b0dce4
permissions -rw-r--r--
make: switch the PYTHON default to `py.exe -3` on Windows Python3 _is_ named `python.exe` on Windows, but that isn't necessarily on PATH when installing from python.org. I do happen to have a python.exe on PATH in `$LOCALAPPDATA/Microsoft/WindowsApps`, but it appears to be 0 bytes (likely because of permission issues), and doesn't run: $ python -V - Cannot open Pulkit hit the same error as I did though, so it isn't just my system: $ make -C . local make: Entering directory `/home/Dell/repos/hg-committed` python setup.py \ build_py -c -d . \ build_ext -i \ build_hgexe -i \ build_mo - Cannot openmake: *** [local] Error 1 The `py.exe` dispatcher lives in the Windows directory (so it is on PATH), looks up the python.org installation, and invokes that interpreter directly. I get a warning with py39, but if it's our issue, it was an existing one: $ make -C .. local make: Entering directory `/c/Users/Matt/hg' py -3 setup.py \ build_py -c -d . \ build_ext -i \ build_hgexe -i \ build_mo C:\Users\Matt\AppData\Local\Programs\Python\Python39\lib\site-packages\setuptools\distutils_patch.py:25: UserWarning: Distutils was imported before Setuptools. This usage is discouraged and may exhibit undesirable behaviors or errors. Please use Setuptools' objects directly or at least import Setuptools first. warnings.warn( The end result is a py3 based hg.exe that annoyingly won't run because it can't find python39.dll. It will run tests (the ones without the `python3` shbang line anyway), because the test runner adjusts PATH to include the python running it. Differential Revision: https://phab.mercurial-scm.org/D9361
Ignore whitespace changes - Everywhere: Within whitespace: At end of lines:
37210
2a2ce93e12f4 templatefuncs: add mailmap template function
Connor Sheehan <sheehan@mozilla.com>
parents:
diff changeset
     1
Create a repo and add some commits
2a2ce93e12f4 templatefuncs: add mailmap template function
Connor Sheehan <sheehan@mozilla.com>
parents:
diff changeset
     2
2a2ce93e12f4 templatefuncs: add mailmap template function
Connor Sheehan <sheehan@mozilla.com>
parents:
diff changeset
     3
  $ hg init mm
2a2ce93e12f4 templatefuncs: add mailmap template function
Connor Sheehan <sheehan@mozilla.com>
parents:
diff changeset
     4
  $ cd mm
2a2ce93e12f4 templatefuncs: add mailmap template function
Connor Sheehan <sheehan@mozilla.com>
parents:
diff changeset
     5
  $ echo "Test content" > testfile1
2a2ce93e12f4 templatefuncs: add mailmap template function
Connor Sheehan <sheehan@mozilla.com>
parents:
diff changeset
     6
  $ hg add testfile1
2a2ce93e12f4 templatefuncs: add mailmap template function
Connor Sheehan <sheehan@mozilla.com>
parents:
diff changeset
     7
  $ hg commit -m "First commit" -u "Proper <commit@m.c>"
2a2ce93e12f4 templatefuncs: add mailmap template function
Connor Sheehan <sheehan@mozilla.com>
parents:
diff changeset
     8
  $ echo "Test content 2" > testfile2
2a2ce93e12f4 templatefuncs: add mailmap template function
Connor Sheehan <sheehan@mozilla.com>
parents:
diff changeset
     9
  $ hg add testfile2
2a2ce93e12f4 templatefuncs: add mailmap template function
Connor Sheehan <sheehan@mozilla.com>
parents:
diff changeset
    10
  $ hg commit -m "Second commit" -u "Commit Name 2 <commit2@m.c>"
2a2ce93e12f4 templatefuncs: add mailmap template function
Connor Sheehan <sheehan@mozilla.com>
parents:
diff changeset
    11
  $ echo "Test content 3" > testfile3
2a2ce93e12f4 templatefuncs: add mailmap template function
Connor Sheehan <sheehan@mozilla.com>
parents:
diff changeset
    12
  $ hg add testfile3
2a2ce93e12f4 templatefuncs: add mailmap template function
Connor Sheehan <sheehan@mozilla.com>
parents:
diff changeset
    13
  $ hg commit -m "Third commit" -u "Commit Name 3 <commit3@m.c>"
2a2ce93e12f4 templatefuncs: add mailmap template function
Connor Sheehan <sheehan@mozilla.com>
parents:
diff changeset
    14
  $ echo "Test content 4" > testfile4
2a2ce93e12f4 templatefuncs: add mailmap template function
Connor Sheehan <sheehan@mozilla.com>
parents:
diff changeset
    15
  $ hg add testfile4
2a2ce93e12f4 templatefuncs: add mailmap template function
Connor Sheehan <sheehan@mozilla.com>
parents:
diff changeset
    16
  $ hg commit -m "Fourth commit" -u "Commit Name 4 <commit4@m.c>"
2a2ce93e12f4 templatefuncs: add mailmap template function
Connor Sheehan <sheehan@mozilla.com>
parents:
diff changeset
    17
2a2ce93e12f4 templatefuncs: add mailmap template function
Connor Sheehan <sheehan@mozilla.com>
parents:
diff changeset
    18
Add a .mailmap file with each possible entry type plus comments
2a2ce93e12f4 templatefuncs: add mailmap template function
Connor Sheehan <sheehan@mozilla.com>
parents:
diff changeset
    19
  $ cat > .mailmap << EOF
2a2ce93e12f4 templatefuncs: add mailmap template function
Connor Sheehan <sheehan@mozilla.com>
parents:
diff changeset
    20
  > # Comment shouldn't break anything
2a2ce93e12f4 templatefuncs: add mailmap template function
Connor Sheehan <sheehan@mozilla.com>
parents:
diff changeset
    21
  > <proper@m.c> <commit@m.c> # Should update email only
2a2ce93e12f4 templatefuncs: add mailmap template function
Connor Sheehan <sheehan@mozilla.com>
parents:
diff changeset
    22
  > Proper Name 2 <commit2@m.c> # Should update name only
2a2ce93e12f4 templatefuncs: add mailmap template function
Connor Sheehan <sheehan@mozilla.com>
parents:
diff changeset
    23
  > Proper Name 3 <proper@m.c> <commit3@m.c> # Should update name, email due to email
2a2ce93e12f4 templatefuncs: add mailmap template function
Connor Sheehan <sheehan@mozilla.com>
parents:
diff changeset
    24
  > Proper Name 4 <proper@m.c> Commit Name 4 <commit4@m.c> # Should update name, email due to name, email
2a2ce93e12f4 templatefuncs: add mailmap template function
Connor Sheehan <sheehan@mozilla.com>
parents:
diff changeset
    25
  > EOF
2a2ce93e12f4 templatefuncs: add mailmap template function
Connor Sheehan <sheehan@mozilla.com>
parents:
diff changeset
    26
  $ hg add .mailmap
2a2ce93e12f4 templatefuncs: add mailmap template function
Connor Sheehan <sheehan@mozilla.com>
parents:
diff changeset
    27
  $ hg commit -m "Add mailmap file" -u "Testuser <test123@m.c>"
2a2ce93e12f4 templatefuncs: add mailmap template function
Connor Sheehan <sheehan@mozilla.com>
parents:
diff changeset
    28
2a2ce93e12f4 templatefuncs: add mailmap template function
Connor Sheehan <sheehan@mozilla.com>
parents:
diff changeset
    29
Output of commits should be normal without filter
2a2ce93e12f4 templatefuncs: add mailmap template function
Connor Sheehan <sheehan@mozilla.com>
parents:
diff changeset
    30
  $ hg log -T "{author}\n" -r "all()"
2a2ce93e12f4 templatefuncs: add mailmap template function
Connor Sheehan <sheehan@mozilla.com>
parents:
diff changeset
    31
  Proper <commit@m.c>
2a2ce93e12f4 templatefuncs: add mailmap template function
Connor Sheehan <sheehan@mozilla.com>
parents:
diff changeset
    32
  Commit Name 2 <commit2@m.c>
2a2ce93e12f4 templatefuncs: add mailmap template function
Connor Sheehan <sheehan@mozilla.com>
parents:
diff changeset
    33
  Commit Name 3 <commit3@m.c>
2a2ce93e12f4 templatefuncs: add mailmap template function
Connor Sheehan <sheehan@mozilla.com>
parents:
diff changeset
    34
  Commit Name 4 <commit4@m.c>
2a2ce93e12f4 templatefuncs: add mailmap template function
Connor Sheehan <sheehan@mozilla.com>
parents:
diff changeset
    35
  Testuser <test123@m.c>
2a2ce93e12f4 templatefuncs: add mailmap template function
Connor Sheehan <sheehan@mozilla.com>
parents:
diff changeset
    36
2a2ce93e12f4 templatefuncs: add mailmap template function
Connor Sheehan <sheehan@mozilla.com>
parents:
diff changeset
    37
Output of commits with filter shows their mailmap values
2a2ce93e12f4 templatefuncs: add mailmap template function
Connor Sheehan <sheehan@mozilla.com>
parents:
diff changeset
    38
  $ hg log -T "{mailmap(author)}\n" -r "all()"
2a2ce93e12f4 templatefuncs: add mailmap template function
Connor Sheehan <sheehan@mozilla.com>
parents:
diff changeset
    39
  Proper <proper@m.c>
2a2ce93e12f4 templatefuncs: add mailmap template function
Connor Sheehan <sheehan@mozilla.com>
parents:
diff changeset
    40
  Proper Name 2 <commit2@m.c>
2a2ce93e12f4 templatefuncs: add mailmap template function
Connor Sheehan <sheehan@mozilla.com>
parents:
diff changeset
    41
  Proper Name 3 <proper@m.c>
2a2ce93e12f4 templatefuncs: add mailmap template function
Connor Sheehan <sheehan@mozilla.com>
parents:
diff changeset
    42
  Proper Name 4 <proper@m.c>
2a2ce93e12f4 templatefuncs: add mailmap template function
Connor Sheehan <sheehan@mozilla.com>
parents:
diff changeset
    43
  Testuser <test123@m.c>
2a2ce93e12f4 templatefuncs: add mailmap template function
Connor Sheehan <sheehan@mozilla.com>
parents:
diff changeset
    44
2a2ce93e12f4 templatefuncs: add mailmap template function
Connor Sheehan <sheehan@mozilla.com>
parents:
diff changeset
    45
Add new mailmap entry for testuser
2a2ce93e12f4 templatefuncs: add mailmap template function
Connor Sheehan <sheehan@mozilla.com>
parents:
diff changeset
    46
  $ cat >> .mailmap << EOF
2a2ce93e12f4 templatefuncs: add mailmap template function
Connor Sheehan <sheehan@mozilla.com>
parents:
diff changeset
    47
  > <newmmentry@m.c> <test123@m.c>
2a2ce93e12f4 templatefuncs: add mailmap template function
Connor Sheehan <sheehan@mozilla.com>
parents:
diff changeset
    48
  > EOF
2a2ce93e12f4 templatefuncs: add mailmap template function
Connor Sheehan <sheehan@mozilla.com>
parents:
diff changeset
    49
2a2ce93e12f4 templatefuncs: add mailmap template function
Connor Sheehan <sheehan@mozilla.com>
parents:
diff changeset
    50
Output of commits with filter shows their updated mailmap values
2a2ce93e12f4 templatefuncs: add mailmap template function
Connor Sheehan <sheehan@mozilla.com>
parents:
diff changeset
    51
  $ hg log -T "{mailmap(author)}\n" -r "all()"
2a2ce93e12f4 templatefuncs: add mailmap template function
Connor Sheehan <sheehan@mozilla.com>
parents:
diff changeset
    52
  Proper <proper@m.c>
2a2ce93e12f4 templatefuncs: add mailmap template function
Connor Sheehan <sheehan@mozilla.com>
parents:
diff changeset
    53
  Proper Name 2 <commit2@m.c>
2a2ce93e12f4 templatefuncs: add mailmap template function
Connor Sheehan <sheehan@mozilla.com>
parents:
diff changeset
    54
  Proper Name 3 <proper@m.c>
2a2ce93e12f4 templatefuncs: add mailmap template function
Connor Sheehan <sheehan@mozilla.com>
parents:
diff changeset
    55
  Proper Name 4 <proper@m.c>
2a2ce93e12f4 templatefuncs: add mailmap template function
Connor Sheehan <sheehan@mozilla.com>
parents:
diff changeset
    56
  Testuser <newmmentry@m.c>
2a2ce93e12f4 templatefuncs: add mailmap template function
Connor Sheehan <sheehan@mozilla.com>
parents:
diff changeset
    57
2a2ce93e12f4 templatefuncs: add mailmap template function
Connor Sheehan <sheehan@mozilla.com>
parents:
diff changeset
    58
A commit with improperly formatted user field should not break the filter
2a2ce93e12f4 templatefuncs: add mailmap template function
Connor Sheehan <sheehan@mozilla.com>
parents:
diff changeset
    59
  $ echo "some more test content" > testfile1
2a2ce93e12f4 templatefuncs: add mailmap template function
Connor Sheehan <sheehan@mozilla.com>
parents:
diff changeset
    60
  $ hg commit -m "Commit with improper user field" -u "Improper user"
2a2ce93e12f4 templatefuncs: add mailmap template function
Connor Sheehan <sheehan@mozilla.com>
parents:
diff changeset
    61
  $ hg log -T "{mailmap(author)}\n" -r "all()"
2a2ce93e12f4 templatefuncs: add mailmap template function
Connor Sheehan <sheehan@mozilla.com>
parents:
diff changeset
    62
  Proper <proper@m.c>
2a2ce93e12f4 templatefuncs: add mailmap template function
Connor Sheehan <sheehan@mozilla.com>
parents:
diff changeset
    63
  Proper Name 2 <commit2@m.c>
2a2ce93e12f4 templatefuncs: add mailmap template function
Connor Sheehan <sheehan@mozilla.com>
parents:
diff changeset
    64
  Proper Name 3 <proper@m.c>
2a2ce93e12f4 templatefuncs: add mailmap template function
Connor Sheehan <sheehan@mozilla.com>
parents:
diff changeset
    65
  Proper Name 4 <proper@m.c>
2a2ce93e12f4 templatefuncs: add mailmap template function
Connor Sheehan <sheehan@mozilla.com>
parents:
diff changeset
    66
  Testuser <newmmentry@m.c>
2a2ce93e12f4 templatefuncs: add mailmap template function
Connor Sheehan <sheehan@mozilla.com>
parents:
diff changeset
    67
  Improper user
37260
8e57c3b0dce4 templatefuncs: do not crash because of invalid value fed to mailmap()
Yuya Nishihara <yuya@tcha.org>
parents: 37210
diff changeset
    68
8e57c3b0dce4 templatefuncs: do not crash because of invalid value fed to mailmap()
Yuya Nishihara <yuya@tcha.org>
parents: 37210
diff changeset
    69
No TypeError beacause of invalid input
8e57c3b0dce4 templatefuncs: do not crash because of invalid value fed to mailmap()
Yuya Nishihara <yuya@tcha.org>
parents: 37210
diff changeset
    70
8e57c3b0dce4 templatefuncs: do not crash because of invalid value fed to mailmap()
Yuya Nishihara <yuya@tcha.org>
parents: 37210
diff changeset
    71
  $ hg log -T '{mailmap(termwidth)}\n' -r0
8e57c3b0dce4 templatefuncs: do not crash because of invalid value fed to mailmap()
Yuya Nishihara <yuya@tcha.org>
parents: 37210
diff changeset
    72
  80