diff options
author | Aravinda VK <avishwan@redhat.com> | 2014-12-17 21:43:57 +0530 |
---|---|---|
committer | Vijay Bellur <vbellur@redhat.com> | 2015-03-02 02:01:09 -0800 |
commit | c3e6d6b54741cfbc828272ace576339ae3a37173 (patch) | |
tree | 92af2ee027933cc404e26f94e6feb6e1c4a5271d /geo-replication | |
parent | efe09fff57dc01088168e60bff355b769c1bc7f7 (diff) |
geo-rep: Unit tests infrastructure for geo-replication
Added sample unit test file,
$GLUSTER_SRC/geo-replication/tests/unit/test_syncdutils.py
Install unittest dependencies, (tox https://tox.readthedocs.org/en/latest/,
nose https://nose.readthedocs.org/en/latest/)
sudo pip install --upgrade tox nose
To run pep8 coding standards tests,
cd $GLUSTER_SRC/geo-replication
tox -e pep8
To run unit tests,
cd $GLUSTER_SRC/geo-replication
tox -e py27
py27 is for with Python 2.7+, or py26 for systems
with Python 2.6+
Change-Id: Ibdefe2c9d73afda9a7fa1c0db5b126f592b7cb40
BUG: 1177722
Signed-off-by: Aravinda VK <avishwan@redhat.com>
Reviewed-on: http://review.gluster.org/9290
Tested-by: Gluster Build System <jenkins@build.gluster.com>
Reviewed-by: Prashanth Pai <ppai@redhat.com>
Reviewed-by: Vijay Bellur <vbellur@redhat.com>
Diffstat (limited to 'geo-replication')
-rw-r--r-- | geo-replication/setup.py | 32 | ||||
-rw-r--r-- | geo-replication/test-requirements.txt | 7 | ||||
-rw-r--r-- | geo-replication/tests/__init__.py | 10 | ||||
-rw-r--r-- | geo-replication/tests/unit/__init__.py | 10 | ||||
-rw-r--r-- | geo-replication/tests/unit/test_syncdutils.py | 30 | ||||
-rw-r--r-- | geo-replication/tox.ini | 32 | ||||
-rw-r--r-- | geo-replication/unittests.sh | 9 |
7 files changed, 130 insertions, 0 deletions
diff --git a/geo-replication/setup.py b/geo-replication/setup.py new file mode 100644 index 00000000000..6d678baa2f7 --- /dev/null +++ b/geo-replication/setup.py @@ -0,0 +1,32 @@ +# +# Copyright (c) 2011-2014 Red Hat, Inc. <http://www.redhat.com> +# This file is part of GlusterFS. + +# This file is licensed to you under your choice of the GNU Lesser +# General Public License, version 3 or any later version (LGPLv3 or +# later), or the GNU General Public License, version 2 (GPLv2), in all +# cases as published by the Free Software Foundation. +# + +""" +This setup.py only used to run tests, since geo-replication will +be installed in /usr/local/libexec/glusterfs or /usr/libexec/glusterfs +""" +from setuptools import setup + +name = 'syncdaemon' + +setup( + name=name, + version="", + description='GlusterFS Geo Replication', + license='', + author='Red Hat, Inc.', + author_email='gluster-devel@gluster.org', + url='http://www.gluster.org', + packages=['syncdaemon', ], + test_suite='nose.collector', + install_requires=[], + scripts=[], + entry_points={}, +) diff --git a/geo-replication/test-requirements.txt b/geo-replication/test-requirements.txt new file mode 100644 index 00000000000..d6165640d3f --- /dev/null +++ b/geo-replication/test-requirements.txt @@ -0,0 +1,7 @@ +# Hacking already pins down pep8, pyflakes and flake8 +flake8 +coverage +nose +nosexcover +nosehtmloutput +mock>=0.8.0 diff --git a/geo-replication/tests/__init__.py b/geo-replication/tests/__init__.py new file mode 100644 index 00000000000..23adbfa5171 --- /dev/null +++ b/geo-replication/tests/__init__.py @@ -0,0 +1,10 @@ +#!/usr/bin/env python +# +# Copyright (c) 2011-2014 Red Hat, Inc. <http://www.redhat.com> +# This file is part of GlusterFS. + +# This file is licensed to you under your choice of the GNU Lesser +# General Public License, version 3 or any later version (LGPLv3 or +# later), or the GNU General Public License, version 2 (GPLv2), in all +# cases as published by the Free Software Foundation. +# diff --git a/geo-replication/tests/unit/__init__.py b/geo-replication/tests/unit/__init__.py new file mode 100644 index 00000000000..23adbfa5171 --- /dev/null +++ b/geo-replication/tests/unit/__init__.py @@ -0,0 +1,10 @@ +#!/usr/bin/env python +# +# Copyright (c) 2011-2014 Red Hat, Inc. <http://www.redhat.com> +# This file is part of GlusterFS. + +# This file is licensed to you under your choice of the GNU Lesser +# General Public License, version 3 or any later version (LGPLv3 or +# later), or the GNU General Public License, version 2 (GPLv2), in all +# cases as published by the Free Software Foundation. +# diff --git a/geo-replication/tests/unit/test_syncdutils.py b/geo-replication/tests/unit/test_syncdutils.py new file mode 100644 index 00000000000..736ae274b85 --- /dev/null +++ b/geo-replication/tests/unit/test_syncdutils.py @@ -0,0 +1,30 @@ +#!/usr/bin/env python +# +# Copyright (c) 2011-2014 Red Hat, Inc. <http://www.redhat.com> +# This file is part of GlusterFS. + +# This file is licensed to you under your choice of the GNU Lesser +# General Public License, version 3 or any later version (LGPLv3 or +# later), or the GNU General Public License, version 2 (GPLv2), in all +# cases as published by the Free Software Foundation. +# + +import unittest + +from syncdaemon import syncdutils + + +class SyncdutilsTestCase(unittest.TestCase): + def setUp(self): + pass + + def tearDown(self): + pass + + def test_escape(self): + self.assertEqual(syncdutils.escape("http://gluster.org"), + "http%3A%2F%2Fgluster.org") + + def test_unescape(self): + self.assertEqual(syncdutils.unescape("http%3A%2F%2Fgluster.org"), + "http://gluster.org") diff --git a/geo-replication/tox.ini b/geo-replication/tox.ini new file mode 100644 index 00000000000..57ff086b947 --- /dev/null +++ b/geo-replication/tox.ini @@ -0,0 +1,32 @@ +[tox] +envlist = py26,py27,pep8 + +[testenv] +whitelist_externals=bash +setenv = VIRTUAL_ENV={envdir} +deps = + --download-cache={homedir}/.pipcache + -r{toxinidir}/test-requirements.txt +changedir = {toxinidir}/tests/unit +commands = nosetests -v --exe --with-xunit --with-coverage --cover-package syncdaemon --cover-erase --cover-xml --cover-html --cover-branches --with-html-output {posargs} + +[tox:jenkins] +downloadcache = ~/cache/pip + +[testenv:pep8] +changedir = {toxinidir} +commands = + flake8 + flake8 syncdaemon tests + +[testenv:cover] +setenv = NOSE_WITH_COVERAGE=1 + +[testenv:venv] +commands = {posargs} + +[flake8] +ignore = H +builtins = _ +exclude = .venv,.tox,dist,doc,tests,*egg +show-source = True
\ No newline at end of file diff --git a/geo-replication/unittests.sh b/geo-replication/unittests.sh new file mode 100644 index 00000000000..d5dbd00bd4c --- /dev/null +++ b/geo-replication/unittests.sh @@ -0,0 +1,9 @@ +#!/bin/bash + +cd $(dirname $0)/tests/unit +nosetests -v --exe --with-coverage --cover-package \ + syncdaemon --cover-erase --cover-html --cover-branches $@ + +saved_status=$? +rm -f .coverage +exit $saved_status |