changeset 40:1c22cd2904eb

Groups tests?
author Marcin Kasperski <Marcin.Kasperski@mekk.waw.pl>
date Sat, 24 Sep 2016 22:46:21 +0200
parents aa0032c0ada8
children b8a7342fbf23
files tests/groups-legacy.t
diffstat 1 files changed, 294 insertions(+), 1 deletions(-) [+]
line wrap: on
line diff
--- a/tests/groups-legacy.t	Sat Sep 24 16:12:09 2016 +0200
+++ b/tests/groups-legacy.t	Sat Sep 24 22:46:21 2016 +0200
@@ -1,2 +1,295 @@
 
-TODO: testing legacy group syntax
\ No newline at end of file
+Let's test group paths, configured with legacy syntax.
+
+Some locations used during testing:
+
+  $ WORK_DIR=${WORK_DIR-`pwd`/work}
+  $ rm -rf $WORK_DIR
+
+  $ export BASE=$WORK_DIR/base
+  $ export REP1=$WORK_DIR/rep1
+  $ export REP2=$WORK_DIR/rep2
+  $ export REP3=$WORK_DIR/rep3
+  $ export REP4=$WORK_DIR/rep4
+
+First we need appropriate Mercurial configuration file (and variable
+which ensures it is used).
+
+  $ export HGRCPATH=$WORK_DIR/hgrc
+  $ mkdir -p $HGRCPATH
+
+  $ cat > $HGRCPATH/basic.rc << EOF
+  > [ui]
+  > username = Andy Default <default@nowhere.net>
+  > [extensions]
+  > mercurial_all_paths =
+  > EOF
+
+We need some repositories to test.
+
+  $ hg init "$BASE"
+  $ hg init "$REP1"
+  $ hg init "$REP2"
+  $ hg init "$REP3"
+  $ hg init "$REP4"
+
+and configuration of groups:
+
+  $ cat > $BASE/.hg/hgrc << EOF
+  > [odd]
+  > remote1=$REP1
+  > remote3=$REP3
+  > [even]
+  > remote2=$REP2
+  > remote4=$REP4
+  > EOF
+
+Let's test pushing
+
+  $ cat > $BASE/file.txt << EOF
+  > Some text
+  > EOF
+
+  $ hg --cwd $BASE add
+  adding file.txt
+  $ hg --cwd $BASE commit -m 'First'
+
+  $ hg --cwd $BASE pushall -g odd
+  pushing to */rep1 (glob)
+  searching for changes
+  adding changesets
+  adding manifests
+  adding file changes
+  added 1 changesets with 1 changes to 1 files
+  pushing to */rep3 (glob)
+  searching for changes
+  adding changesets
+  adding manifests
+  adding file changes
+  added 1 changesets with 1 changes to 1 files
+
+  $ hg --cwd $REP1 log -T '{rev}: {desc}\n'
+  0: First
+
+  $ hg --cwd $REP2 log  -T '{rev}: {desc}\n'
+
+  $ hg --cwd $REP3 log  -T '{rev}: {desc}\n'
+  0: First
+
+  $ hg --cwd $REP4 log  -T '{rev}: {desc}\n'
+
+
+  $ cat >> $BASE/file.txt << EOF
+  > More text
+  > EOF
+
+  $ hg --cwd $BASE commit -m 'Second'
+
+
+  $ hg --cwd $BASE pushall -g even
+  pushing to */rep2 (glob)
+  searching for changes
+  adding changesets
+  adding manifests
+  adding file changes
+  added 2 changesets with 2 changes to 1 files
+  pushing to */rep4 (glob)
+  searching for changes
+  adding changesets
+  adding manifests
+  adding file changes
+  added 2 changesets with 2 changes to 1 files
+
+  $ hg --cwd $REP1 log -T '{rev}: {desc}\n'
+  0: First
+
+  $ hg --cwd $REP2 log  -T '{rev}: {desc}\n'
+  1: Second
+  0: First
+
+  $ hg --cwd $REP3 log  -T '{rev}: {desc}\n'
+  0: First
+
+  $ hg --cwd $REP4 log  -T '{rev}: {desc}\n'
+  1: Second
+  0: First
+
+
+Let's also test pulling
+
+  $ hg --cwd $REP1 update
+  1 files updated, 0 files merged, 0 files removed, 0 files unresolved
+
+  $ cat > $REP1/rep1.txt << EOF
+  > Another text
+  > EOF
+
+  $ hg --cwd $REP1 add
+  adding rep1.txt
+  $ hg --cwd $REP1 commit -m "In repo1"
+
+
+  $ hg --cwd $REP2 update
+  1 files updated, 0 files merged, 0 files removed, 0 files unresolved
+
+  $ cat >> $REP2/file.txt << EOF
+  > From repo2…
+  > EOF
+
+  $ hg --cwd $REP2 commit -m "In repo2"
+
+  $ hg --cwd $BASE incomingall -g odd
+  comparing with */rep1 (glob)
+  searching for changes
+  changeset:   1:* (glob)
+  tag:         tip
+  user:        Andy Default <default@nowhere.net>
+  date:        .* (re)
+  summary:     In repo1
+
+  comparing with */rep2 (glob)
+  searching for changes
+  changeset:   1:* (glob)
+  tag:         tip
+  user:        Andy Default <default@nowhere.net>
+  date:        .* (re)
+  summary:     In repo2
+
+  comparing with */rep3 (glob)
+  searching for changes
+  no changes found
+
+  $ hg --cwd $BASE incomingall -g even
+
+  $ hg --cwd $BASE pullall -g odd
+  pulling from */rep1 (glob)
+  searching for changes
+  adding changesets
+  adding manifests
+  adding file changes
+  added 1 changesets with 1 changes to 1 files (+1 heads)
+  (run 'hg heads' to see heads, 'hg merge' to merge)
+  pulling from */rep3 (glob)
+  searching for changes
+  no changes found
+
+  $ hg --cwd $BASE log  -T '{rev}: {desc}\n'
+  2: In repo2
+  1: In repo1
+  0: First
+
+  $ hg --cwd $BASE outgoingall
+  comparing with */rep1 (glob)
+  searching for changes
+  changeset:   2:.* (re)
+  tag:         tip
+  parent:      0:.* (re)
+  user:        Andy Default <default@nowhere.net>
+  date:        .* (re)
+  summary:     In repo2
+
+  comparing with */rep2 (glob)
+  searching for changes
+  changeset:   1:* (glob)
+  user:        Andy Default <default@nowhere.net>
+  date:        .* (re)
+  summary:     In repo1
+
+  comparing with */rep3 (glob)
+  searching for changes
+  changeset:   1:* (glob)
+  user:        Andy Default <default@nowhere.net>
+  date:        .* (re)
+  summary:     In repo1
+
+  changeset:   2:* (glob)
+  tag:         tip
+  parent:      0:* (glob)
+  user:        Andy Default <default@nowhere.net>
+  date:        .* (re)
+  summary:     In repo2
+
+
+Wrong groups do not work
+
+  $ hg --cwd $BASE pullall -g unknown
+  abort: No paths defined in section paths
+  [255]
+
+  $ hg --cwd $BASE incomingall -g unknown
+  abort: No paths defined in section paths
+  [255]
+
+  $ hg --cwd $BASE outgoingall -g unknown
+  abort: No paths defined in section paths
+  [255]
+
+  $ hg --cwd $BASE pushall -g unknown
+  abort: No paths defined in section paths
+  [255]
+
+Neither do default commands without normal paths
+
+  $ hg --cwd $BASE pushall
+  abort: No paths defined in section paths
+
+  $ hg --cwd $BASE pullall
+  abort: No paths defined in section paths
+
+Finally let's test that push options work
+
+  $ cat > $BASE/br1.txt << EOF
+  > Br1 text
+  > EOF
+
+  $ hg --cwd $BASE branch br1
+  marked working directory as branch br1
+  (branches are permanent and global, did you want a bookmark?)
+  $ hg --cwd $BASE add
+  adding br1.txt
+  $ hg --cwd $BASE commit -m 'Br1'
+
+  $ hg --cwd $BASE update default
+  2 files updated, 0 files merged, 1 files removed, 0 files unresolved
+  $ cat >> $BASE/file.txt << EOF
+  > later text
+  > EOF
+  $ hg --cwd $BASE commit -m 'Normal'
+
+  $ hg --cwd $BASE pushall -r default -f -g odd
+  pushing to */rep1 (glob)
+  searching for changes
+  adding changesets
+  adding manifests
+  adding file changes
+  added 1 changesets with 1 changes to 1 files
+  pushing to */rep3 (glob)
+  searching for changes
+  adding changesets
+  adding manifests
+  adding file changes
+  added 2 changesets with 2 changes to 1 files
+
+  $ hg --cwd $BASE log  -T '{rev}: {desc}\n'
+  4: Normal
+  3: Br1
+  2: In repo2
+  1: In repo1
+  0: First
+
+  $ hg --cwd $REP1 log  -T '{rev}: {desc}\n'
+  2: Normal
+  1: In repo1
+  0: First
+
+  $ hg --cwd $REP2 log  -T '{rev}: {desc}\n'
+  2: In repo2
+  1: Second
+  0: First
+
+  $ hg --cwd $REP3 log  -T '{rev}: {desc}\n'
+  2: Normal
+  1: In repo1
+  0: First
+
+.