D1871: test: add a test for directacces generic write message

lothiraldan (Boris Feld) phabricator at mercurial-scm.org
Wed Jan 17 11:41:35 UTC 2018


lothiraldan created this revision.
Herald added a subscriber: mercurial-devel.
Herald added a reviewer: hg-reviewers.

REVISION SUMMARY
  Even if no write command is using it right now, add a fake extension that
  simulate one in order to test the message and logic.
  
  We will add the obsfate message at the same place but before, we make sure
  it's tested.

REPOSITORY
  rHG Mercurial

REVISION DETAIL
  https://phab.mercurial-scm.org/D1871

AFFECTED FILES
  tests/test-directaccess.t

CHANGE DETAILS

diff --git a/tests/test-directaccess.t b/tests/test-directaccess.t
--- a/tests/test-directaccess.t
+++ b/tests/test-directaccess.t
@@ -1,6 +1,23 @@
 Tests for access level on hidden commits by various commands on based of their
 type.
 
+  $ cat << EOF > directaccessfakewritecommand.py
+  > """A small extension that simulate a write command for directaccess
+  > """
+  > 
+  > from mercurial import error, registrar, repair, util, scmutil
+  > 
+  > cmdtable = {}
+  > command = registrar.command(cmdtable)
+  > 
+  > @command(b'writedirectaccess', [('r', 'rev', [], 'revision', 'REV')], '')
+  > def write(ui, repo, *pats, **opts):
+  >     revs = opts.get('rev')
+  >     repo = scmutil.unhidehashlikerevs(repo, revs, 'warn')
+  >     range = scmutil.revrange(repo, revs)
+  >     repo.ui.write("RANGE %s\n" % list(range))
+  > EOF
+
 Setting the required config to start this
 
   $ cat >> $HGRCPATH <<EOF
@@ -10,6 +27,7 @@
   > directaccess.revnums=True
   > [extensions]
   > amend =
+  > directaccessfakewritecommand = $TESTTMP/directaccessfakewritecommand.py
   > EOF
 
   $ hg init repo
@@ -188,11 +206,94 @@
   (use --hidden to access hidden revisions)
   [255]
 
+Test a fake write command to validate the message
+
+  $ hg log -G --hidden
+  @  changeset:   3:2443a0e66469
+  |  tag:         tip
+  |  parent:      1:29becc82797a
+  |  user:        test
+  |  date:        Thu Jan 01 00:00:00 1970 +0000
+  |  summary:     Added c
+  |
+  | x  changeset:   2:28ad74487de9
+  |/   user:        test
+  |    date:        Thu Jan 01 00:00:00 1970 +0000
+  |    obsolete:    rewritten using amend as 3:2443a0e66469
+  |    summary:     Added c
+  |
+  o  changeset:   1:29becc82797a
+  |  user:        test
+  |  date:        Thu Jan 01 00:00:00 1970 +0000
+  |  summary:     Added b
+  |
+  o  changeset:   0:18d04c59bb5d
+     user:        test
+     date:        Thu Jan 01 00:00:00 1970 +0000
+     summary:     Added a
+  
+
+Amend a second time to test the write message on several hidden changesets
+  $ echo "babar" >> c
+  $ hg amend
+  $ hg log -G --hidden
+  @  changeset:   4:d716de383093
+  |  tag:         tip
+  |  parent:      1:29becc82797a
+  |  user:        test
+  |  date:        Thu Jan 01 00:00:00 1970 +0000
+  |  summary:     Added c
+  |
+  | x  changeset:   3:2443a0e66469
+  |/   parent:      1:29becc82797a
+  |    user:        test
+  |    date:        Thu Jan 01 00:00:00 1970 +0000
+  |    obsolete:    rewritten using amend as 4:d716de383093
+  |    summary:     Added c
+  |
+  | x  changeset:   2:28ad74487de9
+  |/   user:        test
+  |    date:        Thu Jan 01 00:00:00 1970 +0000
+  |    obsolete:    rewritten using amend as 3:2443a0e66469
+  |    summary:     Added c
+  |
+  o  changeset:   1:29becc82797a
+  |  user:        test
+  |  date:        Thu Jan 01 00:00:00 1970 +0000
+  |  summary:     Added b
+  |
+  o  changeset:   0:18d04c59bb5d
+     user:        test
+     date:        Thu Jan 01 00:00:00 1970 +0000
+     summary:     Added a
+  
+
+  $ hg writedirectaccess -r 28ad74
+  warning: accessing hidden changesets for write operation: 28ad74487de9
+  RANGE [2]
+
+  $ hg writedirectaccess -r 2443a0
+  warning: accessing hidden changesets for write operation: 2443a0e66469
+  RANGE [3]
+
+  $ hg writedirectaccess -r "28ad74:2443a0"
+  warning: accessing hidden changesets for write operation: 28ad74487de9, 2443a0e66469
+  RANGE [2, 3]
+
+  $ hg writedirectaccess -r "28ad74 + 2443a0"
+  abort: hidden revision '28ad74' was rewritten as: d716de383093!
+  (use --hidden to access hidden revisions)
+  [255]
+
+  $ hg writedirectaccess -r "28ad74:d716de"
+  warning: accessing hidden changesets for write operation: 28ad74487de9
+  RANGE [2, 3, 4]
+
 Setting a bookmark will make that changeset unhidden, so this should come in end
 
   $ hg bookmarks -r 28ad74 book
   bookmarking hidden changeset 28ad74487de9
-  (hidden revision '28ad74487de9' was rewritten as: 2443a0e66469)
+  (hidden revision '28ad74487de9' was rewritten as: d716de383093)
 
   $ hg bookmarks
      book                      2:28ad74487de9



To: lothiraldan, #hg-reviewers
Cc: mercurial-devel


More information about the Mercurial-devel mailing list