[PATCH hglib] tests: rearrange tests and use nosetests

Matt Mackall mpm at selenic.com
Mon Aug 8 17:43:34 CDT 2011


On Tue, 2011-08-09 at 00:42 +0300, Idan Kamara wrote:
> # HG changeset patch
> # User Idan Kamara <idankk86 at gmail.com>
> # Date 1311450939 -10800
> # Node ID 1e08687a2034a8c3470bcdbe669febad8773ea9e
> # Parent  fb0b2708717964d486c96eb122ab60bb81a882a6
> tests: rearrange tests and use nosetests

What is a nosetest? It sounds like a new dependency.

Why is this patch apparently doing two different things?

> - provide package setup/teardown methods that fixes the environment
> - introduce a basetest that initializes a repository in a temp dir
> 
> diff -r fb0b27087179 -r 1e08687a2034 .hgignore
> --- a/.hgignore	Tue Aug 09 00:41:31 2011 +0300
> +++ b/.hgignore	Sat Jul 23 22:55:39 2011 +0300
> @@ -5,3 +5,4 @@
>  *.rej
>  *~
>  *.swp
> +*.noseids
> diff -r fb0b27087179 -r 1e08687a2034 Makefile
> --- a/Makefile	Tue Aug 09 00:41:31 2011 +0300
> +++ b/Makefile	Sat Jul 23 22:55:39 2011 +0300
> @@ -8,4 +8,4 @@
>  .PHONY: tests
>  
>  tests:
> -	cd tests && $(PYTHON) $(HGREPO)/tests/run-tests.py -l $(TESTFLAGS)
> +	nosetests --with-doctest
> diff -r fb0b27087179 -r 1e08687a2034 tests/__init__.py
> --- /dev/null	Thu Jan 01 00:00:00 1970 +0000
> +++ b/tests/__init__.py	Sat Jul 23 22:55:39 2011 +0300
> @@ -0,0 +1,21 @@
> +import os, tempfile, sys, shutil
> +
> +def setUp():
> +    os.environ['LANG'] = os.environ['LC_ALL'] = os.environ['LANGUAGE'] = 'C'
> +    os.environ['TZ'] = 'GMT'
> +    os.environ["EMAIL"] = "Foo Bar <foo.bar at example.com>"
> +    os.environ['CDPATH'] = ''
> +    os.environ['COLUMNS'] = '80'
> +    os.environ['GREP_OPTIONS'] = ''
> +    os.environ['http_proxy'] = ''
> +
> +    os.environ["HGEDITOR"] = sys.executable + ' -c "import sys; sys.exit(0)"'
> +    os.environ["HGMERGE"] = "internal:merge"
> +    os.environ["HGUSER"]   = "test"
> +    os.environ["HGENCODING"] = "ascii"
> +    os.environ["HGENCODINGMODE"] = "strict"
> +    tmpdir = tempfile.mkdtemp('', 'python-hglib.')
> +    os.environ["HGTMP"] = os.path.realpath(tmpdir)
> +
> +def tearDown(self):
> +    shutil.rmtree(os.environ["HGTMP"])
> diff -r fb0b27087179 -r 1e08687a2034 tests/common.py
> --- /dev/null	Thu Jan 01 00:00:00 1970 +0000
> +++ b/tests/common.py	Sat Jul 23 22:55:39 2011 +0300
> @@ -0,0 +1,24 @@
> +import os, sys, tempfile, shutil
> +import unittest
> +
> +import hglib
> +
> +class basetest(unittest.TestCase):
> +    def setUp(self):
> +        self._testtmp = os.environ["TESTTMP"] = os.environ["HOME"] = \
> +            os.path.join(os.environ["HGTMP"], self.__class__.__name__)
> +
> +        os.mkdir(self._testtmp)
> +        os.chdir(self._testtmp)
> +        # until we can run norepo commands in the cmdserver
> +        os.system('hg init')
> +        self.client = hglib.open()
> +
> +    def tearDown(self):
> +        shutil.rmtree(self._testtmp)
> +
> +    def append(self, path, *args):
> +        f = open(path, 'a')
> +        for a in args:
> +            f.write(str(a))
> +        f.close()
> diff -r fb0b27087179 -r 1e08687a2034 tests/test-branch.py
> --- /dev/null	Thu Jan 01 00:00:00 1970 +0000
> +++ b/tests/test-branch.py	Sat Jul 23 22:55:39 2011 +0300
> @@ -0,0 +1,11 @@
> +import common
> +import hglib
> +
> +class test_branch(common.basetest):
> +    def test_basic(self):
> +        self.assertEquals(self.client.branch(), 'default')
> +        self.append('a', 'a')
> +        rev = self.client.commit('first', addremove=True)
> +        branches = self.client.branches()
> +
> +        self.assertEquals(rev, branches[rev.branch])
> diff -r fb0b27087179 -r 1e08687a2034 tests/test-encoding.py
> --- /dev/null	Thu Jan 01 00:00:00 1970 +0000
> +++ b/tests/test-encoding.py	Sat Jul 23 22:55:39 2011 +0300
> @@ -0,0 +1,7 @@
> +import common
> +import hglib
> +
> +class test_encoding(common.basetest):
> +    def test_basic(self):
> +        self.client = hglib.open(encoding='utf-8')
> +        self.assertEquals(self.client.encoding, 'utf-8')
> diff -r fb0b27087179 -r 1e08687a2034 tests/test-hglib.py
> --- a/tests/test-hglib.py	Tue Aug 09 00:41:31 2011 +0300
> +++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
> @@ -1,113 +0,0 @@
> -#!/usr/bin/env python
> -
> -import unittest
> -
> -import sys, os, subprocess, cStringIO, shutil, tempfile
> -
> -sys.path.append(os.path.dirname(os.path.abspath(__file__)) + '/../')
> -import hglib
> -
> -class test_hglib(unittest.TestCase):
> -    def setUp(self):
> -        self._tmpdir = tempfile.mkdtemp()
> -        os.chdir(self._tmpdir)
> -        # until we can run norepo commands in the cmdserver
> -        os.system('hg init')
> -        self.client = hglib.open()
> -
> -    def tearDown(self):
> -        shutil.rmtree(self._tmpdir)
> -
> -    def append(self, path, *args):
> -        f = open(path, 'a')
> -        for a in args:
> -            f.write(str(a))
> -        f.close()
> -
> -    def test_log(self):
> -        self.append('a', 'a')
> -        rev0 = self.client.commit('first', addremove=True)
> -        self.append('a', 'a')
> -        rev1 = self.client.commit('second')
> -
> -        revs = self.client.log()
> -        revs.reverse()
> -
> -        self.assertTrue(len(revs) == 2)
> -        self.assertEquals(revs[1], rev1)
> -
> -        self.assertEquals(revs[0], self.client.log('0')[0])
> -
> -    def test_outgoing_incoming(self):
> -        self.append('a', 'a')
> -        self.client.commit('first', addremove=True)
> -        self.append('a', 'a')
> -        self.client.commit('second')
> -
> -        self.client.clone(dest='bar')
> -        bar = hglib.open('bar')
> -
> -        self.assertEquals(self.client.log(), bar.log())
> -        self.assertEquals(self.client.outgoing(path='bar'), bar.incoming())
> -
> -        self.append('a', 'a')
> -        rev = self.client.commit('third')
> -        out = self.client.outgoing(path='bar')
> -
> -        self.assertEquals(len(out), 1)
> -        self.assertEquals(out[0], rev)
> -
> -        self.assertEquals(out, bar.incoming())
> -
> -    def test_branch(self):
> -        self.assertEquals(self.client.branch(), 'default')
> -        self.append('a', 'a')
> -        rev = self.client.commit('first', addremove=True)
> -        branches = self.client.branches()
> -
> -        self.assertEquals(rev, branches[rev.branch])
> -
> -    def test_encoding(self):
> -        self.client = hglib.open(encoding='utf-8')
> -        self.assertEquals(self.client.encoding, 'utf-8')
> -
> -    def test_paths(self):
> -        open('.hg/hgrc', 'a').write('[paths]\nfoo = bar\n')
> -
> -        # hgrc isn't watched for changes yet, have to reconnect
> -        self.client = hglib.open()
> -        paths = self.client.paths()
> -        self.assertEquals(len(paths), 1)
> -        self.assertEquals(paths['foo'], os.path.abspath('bar'))
> -        self.assertEquals(self.client.paths('foo'), os.path.abspath('bar'))
> -
> -    def test_import(self):
> -        patch = """
> -# HG changeset patch
> -# User test
> -# Date 0 0
> -# Node ID c103a3dec114d882c98382d684d8af798d09d857
> -# Parent  0000000000000000000000000000000000000000
> -1
> -
> -diff -r 000000000000 -r c103a3dec114 a
> ---- /dev/null	Thu Jan 01 00:00:00 1970 +0000
> -+++ b/a	Thu Jan 01 00:00:00 1970 +0000
> -@@ -0,0 +1,1 @@
> -+1
> -"""
> -        self.client.import_(cStringIO.StringIO(patch))
> -        self.assertEquals(self.client.cat(['a']), '1\n')
> -
> -if __name__ == '__main__':
> -    stream = cStringIO.StringIO()
> -    runner = unittest.TextTestRunner(stream=stream, verbosity=0)
> -
> -    # XXX fix this
> -    module = __import__('__main__')
> -    loader = unittest.TestLoader()
> -    ret = not runner.run(loader.loadTestsFromModule(module)).wasSuccessful()
> -    if ret:
> -        print stream.getvalue()
> -
> -    sys.exit(ret)
> diff -r fb0b27087179 -r 1e08687a2034 tests/test-import.py
> --- /dev/null	Thu Jan 01 00:00:00 1970 +0000
> +++ b/tests/test-import.py	Sat Jul 23 22:55:39 2011 +0300
> @@ -0,0 +1,21 @@
> +import common, cStringIO
> +import hglib
> +
> +class test_import(common.basetest):
> +    def test_basic(self):
> +        patch = """
> +# HG changeset patch
> +# User test
> +# Date 0 0
> +# Node ID c103a3dec114d882c98382d684d8af798d09d857
> +# Parent  0000000000000000000000000000000000000000
> +1
> +
> +diff -r 000000000000 -r c103a3dec114 a
> +--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
> ++++ b/a	Thu Jan 01 00:00:00 1970 +0000
> +@@ -0,0 +1,1 @@
> ++1
> +"""
> +        self.client.import_(cStringIO.StringIO(patch))
> +        self.assertEquals(self.client.cat(['a']), '1\n')
> diff -r fb0b27087179 -r 1e08687a2034 tests/test-log.py
> --- /dev/null	Thu Jan 01 00:00:00 1970 +0000
> +++ b/tests/test-log.py	Sat Jul 23 22:55:39 2011 +0300
> @@ -0,0 +1,17 @@
> +import common
> +import hglib
> +
> +class test_log(common.basetest):
> +    def test_basic(self):
> +        self.append('a', 'a')
> +        rev0 = self.client.commit('first', addremove=True)
> +        self.append('a', 'a')
> +        rev1 = self.client.commit('second')
> +
> +        revs = self.client.log()
> +        revs.reverse()
> +
> +        self.assertTrue(len(revs) == 2)
> +        self.assertEquals(revs[1], rev1)
> +
> +        self.assertEquals(revs[0], self.client.log('0')[0])
> diff -r fb0b27087179 -r 1e08687a2034 tests/test-outgoing-incoming.py
> --- /dev/null	Thu Jan 01 00:00:00 1970 +0000
> +++ b/tests/test-outgoing-incoming.py	Sat Jul 23 22:55:39 2011 +0300
> @@ -0,0 +1,24 @@
> +import common
> +import hglib
> +
> +class test_outgoing_incoming(common.basetest):
> +    def test_basic(self):
> +        self.append('a', 'a')
> +        self.client.commit('first', addremove=True)
> +        self.append('a', 'a')
> +        self.client.commit('second')
> +
> +        self.client.clone(dest='bar')
> +        bar = hglib.open('bar')
> +
> +        self.assertEquals(self.client.log(), bar.log())
> +        self.assertEquals(self.client.outgoing(path='bar'), bar.incoming())
> +
> +        self.append('a', 'a')
> +        rev = self.client.commit('third')
> +        out = self.client.outgoing(path='bar')
> +
> +        self.assertEquals(len(out), 1)
> +        self.assertEquals(out[0], rev)
> +
> +        self.assertEquals(out, bar.incoming())
> diff -r fb0b27087179 -r 1e08687a2034 tests/test-paths.py
> --- /dev/null	Thu Jan 01 00:00:00 1970 +0000
> +++ b/tests/test-paths.py	Sat Jul 23 22:55:39 2011 +0300
> @@ -0,0 +1,13 @@
> +import common, os
> +import hglib
> +
> +class test_paths(common.basetest):
> +    def test_basic(self):
> +        open('.hg/hgrc', 'a').write('[paths]\nfoo = bar\n')
> +
> +        # hgrc isn't watched for changes yet, have to reopen
> +        self.client = hglib.open()
> +        paths = self.client.paths()
> +        self.assertEquals(len(paths), 1)
> +        self.assertEquals(paths['foo'], os.path.abspath('bar'))
> +        self.assertEquals(self.client.paths('foo'), os.path.abspath('bar'))
> _______________________________________________
> Mercurial-devel mailing list
> Mercurial-devel at selenic.com
> http://selenic.com/mailman/listinfo/mercurial-devel


-- 
Mathematics is the supreme nostalgia of our time.




More information about the Mercurial-devel mailing list