changeset 251:e19782e7b21c

Add unit-tests for the "revinfo" extension
author Franz Glasner <hg@dom66.de>
date Sun, 06 Jan 2019 23:53:34 +0100
parents 9a3dacfc3be6
children b8fc7f0990e7
files tests/lib-test-revinfo.sh tests/test-revinfo.t
diffstat 2 files changed, 136 insertions(+), 0 deletions(-) [+]
line wrap: on
line diff
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/tests/lib-test-revinfo.sh	Sun Jan 06 23:53:34 2019 +0100
@@ -0,0 +1,62 @@
+#!/bin/sh
+
+#
+# Preconditions for a manual setup:
+#
+#   - cd tests
+#   - . ./lib-test-revinfo.sh
+#   - TESTDIR=`pwd`; export TESTDIR
+#
+
+#
+# Prepare a "canonical" repository for testing the kwarchive extension
+#
+# prepare_repo REPO
+#
+prepare_repo() {
+    if [ -z "$TESTDIR" ]; then
+	echo "TESTDIR is not set"
+	return 1
+    else
+	if [ ! -f "$TESTDIR/../extensions/kwarchive.py" ]; then
+	    echo "Wrong TESTDIR setup"
+	    return 1
+	fi
+	LOCAL_TESTDIR="$TESTDIR"
+    fi
+    if [ -z "$HGRCPATH" ]; then
+	#
+	# Check whether we are running in the context of Mercurial's
+	# run-tests.py
+	#
+	if [ "$TESTTMP" = "$HOME" ]; then
+	    echo "HGRCPATH is not set"
+	    return 1
+	else
+	    # Path after changing wd into $1
+	    LOCAL_HGRCPATH=".hg/hgrc"
+	fi
+    else
+	LOCAL_HGRCPATH="$HGRCPATH"
+    fi
+    hg init "$1"
+    cd "$1"
+    cat >>$LOCAL_HGRCPATH <<EOF
+[extensions]
+revinfo=$LOCAL_TESTDIR/../extensions/revinfo.py
+[ui]
+username=First Second <first.second@example.com>
+[paths]
+default=https://theuser:thepass@hg.example.com:4443/repo.hg
+EOF
+    unset HGUSER
+    unset EMAIL
+
+    cat >>test.txt <<EOF
+Test content
+EOF
+    hg add test.txt
+    hg ci -m 'Some files'
+
+    cd ..
+}
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/tests/test-revinfo.t	Sun Jan 06 23:53:34 2019 +0100
@@ -0,0 +1,74 @@
+Setup
+
+  $ . $TESTDIR/lib-test-revinfo.sh
+
+Test revinfo with "default" path
+
+  $ prepare_repo "repo1"
+  $ cd "repo1"
+  $ hg revinfo
+  repo: 22e1fd6cfd36fa64746bd27c0d0bab66d9d89bec
+  node: 22e1fd6cfd36fa64746bd27c0d0bab66d9d89bec
+  branch: default
+  latesttag: null
+  latesttagdistance: 1
+  changessincelatesttag: 1
+  path: https://theuser:***@hg.example.com:4443/repo.hg
+
+Test revinfo with current workspace
+
+  $ hg revinfo --path=.
+  repo: 22e1fd6cfd36fa64746bd27c0d0bab66d9d89bec
+  node: 22e1fd6cfd36fa64746bd27c0d0bab66d9d89bec
+  branch: default
+  latesttag: null
+  latesttagdistance: 1
+  changessincelatesttag: 1
+  path: $TESTTMP/repo1
+
+Now tag and do the very same tests with the tag defined
+
+  $ hg tag TestTag
+  $ hg tags
+  tip +1:c21a4e088547 (re)
+  TestTag +0:22e1fd6cfd36 (re)
+
+Now test again with "default" path
+
+  $ hg revinfo
+  repo: 22e1fd6cfd36fa64746bd27c0d0bab66d9d89bec
+  node: c21a4e08854737b6fcbf6f4fa69d0e6c9b1b8767
+  branch: default
+  latesttag: TestTag
+  latesttagdistance: 1
+  changessincelatesttag: 1
+  path: https://theuser:***@hg.example.com:4443/repo.hg
+
+
+Now test again with current workspace
+
+  $ hg revinfo -p .
+  repo: 22e1fd6cfd36fa64746bd27c0d0bab66d9d89bec
+  node: c21a4e08854737b6fcbf6f4fa69d0e6c9b1b8767
+  branch: default
+  latesttag: TestTag
+  latesttagdistance: 1
+  changessincelatesttag: 1
+  path: $TESTTMP/repo1
+
+Now test amending and keywords
+
+  $ hg revinfo -p . >revinfo.txt
+  $ hg revinfo --amend -p default revinfo.txt
+  $ hg revinfo --amend --data key1=val1 --data 'key2=val2 with space' revinfo.txt
+  $ cat revinfo.txt
+  repo: 22e1fd6cfd36fa64746bd27c0d0bab66d9d89bec
+  node: c21a4e08854737b6fcbf6f4fa69d0e6c9b1b8767
+  branch: default
+  latesttag: TestTag
+  latesttagdistance: 1
+  changessincelatesttag: 1
+  path: $TESTTMP/repo1
+  path: https://theuser:***@hg.example.com:4443/repo.hg
+  key1: val1
+  key2: val2 with space