annotate tests/test-debian-packages.t @ 39548:7ce9dea3a14a

localrepo: move repo creation logic out of localrepository.__init__ (API) It has long bothered me that local repository creation is handled as part of localrepository.__init__. Upcoming changes I want to make around how repositories are initialized and instantiated will make the continued existence of repository creation code in localrepository.__init__ even more awkward. localrepository instances are almost never constructed directly: instead, callers are supposed to go through hg.repository() to obtain a handle on a repository. And hg.repository() calls localrepo.instance() to return a new repo instance. This commit teaches localrepo.instance() to handle the create=True logic. Most of the code for repo construction has been moved to a standalone function. This allows extensions to monkeypatch the function to further customize freshly-created repositories. A few calls to localrepo.localrepository.__init__ that were passing create=True were converted to call localrepo.instance(). .. api:: local repo creation moved out of constructor ``localrepo.localrepository.__init__`` no longer accepts a ``create`` argument to create a new repository. New repository creation is now performed as part of ``localrepo.instance()`` and the bulk of the work is performed by ``localrepo.createrepository()``. Differential Revision: https://phab.mercurial-scm.org/D4534
author Gregory Szorc <gregory.szorc@gmail.com>
date Tue, 11 Sep 2018 13:46:59 -0700
parents 0133ca39c688
children 7574ccd87200
Ignore whitespace changes - Everywhere: Within whitespace: At end of lines:
rev   line source
34401
13d3f8aaed87 tests: add "have" check for dpkg builddeps
Kyle Lippincott <spectral@google.com>
parents: 34400
diff changeset
1 #require test-repo slow debhelper debdeps
26148
7f49efcaa9b4 debian: switch to using debhelper and dh_python2 to build debs
Augie Fackler <augie@google.com>
parents: 26147
diff changeset
2
29219
3c9066ed557c tests: silence test-repo obsolete warning
timeless <timeless@mozdev.org>
parents: 26148
diff changeset
3 $ . "$TESTDIR/helpers-testrepo.sh"
33204
ddd65b4f3ae6 tests: alias syshg and syshgenv so they can be switched conditionally
Yuya Nishihara <yuya@tcha.org>
parents: 33116
diff changeset
4 $ testrepohgenv
29219
3c9066ed557c tests: silence test-repo obsolete warning
timeless <timeless@mozdev.org>
parents: 26148
diff changeset
5
26148
7f49efcaa9b4 debian: switch to using debhelper and dh_python2 to build debs
Augie Fackler <augie@google.com>
parents: 26147
diff changeset
6 Ensure debuild doesn't run the testsuite, as that could get silly.
7f49efcaa9b4 debian: switch to using debhelper and dh_python2 to build debs
Augie Fackler <augie@google.com>
parents: 26147
diff changeset
7 $ DEB_BUILD_OPTIONS=nocheck
7f49efcaa9b4 debian: switch to using debhelper and dh_python2 to build debs
Augie Fackler <augie@google.com>
parents: 26147
diff changeset
8 $ export DEB_BUILD_OPTIONS
26147
a02c22e48142 test-debian-packages: new test for testing construction of debian packages
Augie Fackler <augie@google.com>
parents:
diff changeset
9 $ OUTPUTDIR=`pwd`
a02c22e48142 test-debian-packages: new test for testing construction of debian packages
Augie Fackler <augie@google.com>
parents:
diff changeset
10 $ export OUTPUTDIR
a02c22e48142 test-debian-packages: new test for testing construction of debian packages
Augie Fackler <augie@google.com>
parents:
diff changeset
11
a02c22e48142 test-debian-packages: new test for testing construction of debian packages
Augie Fackler <augie@google.com>
parents:
diff changeset
12 $ cd "$TESTDIR"/..
a02c22e48142 test-debian-packages: new test for testing construction of debian packages
Augie Fackler <augie@google.com>
parents:
diff changeset
13 $ make deb > $OUTPUTDIR/build.log 2>&1
a02c22e48142 test-debian-packages: new test for testing construction of debian packages
Augie Fackler <augie@google.com>
parents:
diff changeset
14 $ cd $OUTPUTDIR
34400
3d936da4f97b tests: expect parsers.so in cext, parsers.py in pure (test-debian-packages)
Kyle Lippincott <spectral@google.com>
parents: 33204
diff changeset
15 $ ls *.deb | grep -v 'dbg'
26148
7f49efcaa9b4 debian: switch to using debhelper and dh_python2 to build debs
Augie Fackler <augie@google.com>
parents: 26147
diff changeset
16 mercurial-common_*.deb (glob)
7f49efcaa9b4 debian: switch to using debhelper and dh_python2 to build debs
Augie Fackler <augie@google.com>
parents: 26147
diff changeset
17 mercurial_*.deb (glob)
7f49efcaa9b4 debian: switch to using debhelper and dh_python2 to build debs
Augie Fackler <augie@google.com>
parents: 26147
diff changeset
18 main deb should have .so but no .py
7f49efcaa9b4 debian: switch to using debhelper and dh_python2 to build debs
Augie Fackler <augie@google.com>
parents: 26147
diff changeset
19 $ dpkg --contents mercurial_*.deb | egrep '(localrepo|parsers)'
34400
3d936da4f97b tests: expect parsers.so in cext, parsers.py in pure (test-debian-packages)
Kyle Lippincott <spectral@google.com>
parents: 33204
diff changeset
20 * ./usr/lib/python2.7/dist-packages/mercurial/cext/parsers*.so (glob)
26148
7f49efcaa9b4 debian: switch to using debhelper and dh_python2 to build debs
Augie Fackler <augie@google.com>
parents: 26147
diff changeset
21 mercurial-common should have py but no .so or pyc
34400
3d936da4f97b tests: expect parsers.so in cext, parsers.py in pure (test-debian-packages)
Kyle Lippincott <spectral@google.com>
parents: 33204
diff changeset
22 $ dpkg --contents mercurial-common_*.deb | egrep '(localrepo|parsers.*so)'
26148
7f49efcaa9b4 debian: switch to using debhelper and dh_python2 to build debs
Augie Fackler <augie@google.com>
parents: 26147
diff changeset
23 * ./usr/lib/python2.7/dist-packages/mercurial/localrepo.py (glob)
34405
9ecc622ca23f deb: install zsh completions to /usr/share/zsh/vendor-completions
Kyle Lippincott <spectral@google.com>
parents: 34401
diff changeset
24 zsh completions should be in the common package
9ecc622ca23f deb: install zsh completions to /usr/share/zsh/vendor-completions
Kyle Lippincott <spectral@google.com>
parents: 34401
diff changeset
25 $ dpkg --contents mercurial-common_*.deb | egrep 'zsh.*[^/]$'
9ecc622ca23f deb: install zsh completions to /usr/share/zsh/vendor-completions
Kyle Lippincott <spectral@google.com>
parents: 34401
diff changeset
26 * ./usr/share/zsh/vendor-completions/_hg (glob)
34406
0133ca39c688 deb: build and install chg
Kyle Lippincott <spectral@google.com>
parents: 34405
diff changeset
27 chg should be installed alongside hg, in the 'mercurial' package
0133ca39c688 deb: build and install chg
Kyle Lippincott <spectral@google.com>
parents: 34405
diff changeset
28 $ dpkg --contents mercurial_*.deb | egrep 'chg$'
0133ca39c688 deb: build and install chg
Kyle Lippincott <spectral@google.com>
parents: 34405
diff changeset
29 * ./usr/bin/chg (glob)
0133ca39c688 deb: build and install chg
Kyle Lippincott <spectral@google.com>
parents: 34405
diff changeset
30 chg should come with a man page
0133ca39c688 deb: build and install chg
Kyle Lippincott <spectral@google.com>
parents: 34405
diff changeset
31 $ dpkg --contents mercurial_*.deb | egrep 'man.*chg'
0133ca39c688 deb: build and install chg
Kyle Lippincott <spectral@google.com>
parents: 34405
diff changeset
32 * ./usr/share/man/man1/chg.1.gz (glob)