1
0
Fork 0
mirror of https://github.com/ansible-collections/community.general.git synced 2024-09-14 20:13:21 +02:00

Merge pull request #10455 from jlaska/tox_and_travis

Add tox and travis-ci support
This commit is contained in:
Brian Coca 2015-03-13 10:15:59 -04:00
commit d65e1ee2cb
8 changed files with 60 additions and 18 deletions

4
.coveragerc Normal file
View file

@ -0,0 +1,4 @@
[report]
omit =
*/python?.?/*
*/site-packages/nose/*

1
.gitignore vendored
View file

@ -42,6 +42,7 @@ deb-build
credentials.yml credentials.yml
# test output # test output
.coverage .coverage
.tox
results.xml results.xml
coverage.xml coverage.xml
/test/units/cover-html /test/units/cover-html

11
.travis.yml Normal file
View file

@ -0,0 +1,11 @@
sudo: false
language: python
env:
- TOXENV=py26
- TOXENV=py27
install:
- pip install tox
script:
- tox
after_success:
- coveralls

View file

@ -93,7 +93,7 @@ NOSETESTS3 ?= nosetests-3.3
all: clean python all: clean python
tests: tests:
PYTHONPATH=./lib $(NOSETESTS) -d -w test/units -v # Could do: --with-coverage --cover-package=ansible PYTHONPATH=./lib $(NOSETESTS) -d -w test/units -v --with-coverage --cover-package=ansible --cover-branches
newtests: newtests:
PYTHONPATH=./v2:./lib $(NOSETESTS) -d -w v2/test -v --with-coverage --cover-package=ansible --cover-branches PYTHONPATH=./v2:./lib $(NOSETESTS) -d -w v2/test -v --with-coverage --cover-package=ansible --cover-branches

View file

@ -1,4 +1,6 @@
[![PyPI version](https://badge.fury.io/py/ansible.png)](http://badge.fury.io/py/ansible) [![PyPI downloads](https://pypip.in/d/ansible/badge.png)](https://pypi.python.org/pypi/ansible) [![PyPI version](https://badge.fury.io/py/ansible.png)](http://badge.fury.io/py/ansible)
[![PyPI downloads](https://pypip.in/d/ansible/badge.png)](https://pypi.python.org/pypi/ansible)
[![Build Status](https://travis-ci.org/ansible/ansible.svg?branch=tox_and_travis)](https://travis-ci.org/ansible/ansible)
Ansible Ansible

View file

@ -5,3 +5,5 @@
nose nose
mock mock
passlib passlib
coverage
coveralls

View file

@ -1,8 +1,26 @@
import collections import collections
import mock import mock
import os import os
import re
from nose import tools from nose.tools import eq_
try:
from nose.tools import assert_raises_regexp
except ImportError:
# Python < 2.7
def assert_raises_regexp(expected, regexp, callable, *a, **kw):
try:
callable(*a, **kw)
except expected as e:
if isinstance(regexp, basestring):
regexp = re.compile(regexp)
if not regexp.search(str(e)):
raise Exception('"%s" does not match "%s"' %
(regexp.pattern, str(e)))
else:
if hasattr(expected,'__name__'): excName = expected.__name__
else: excName = str(expected)
raise AssertionError("%s not raised" % excName)
from ansible.module_utils.database import ( from ansible.module_utils.database import (
pg_quote_identifier, pg_quote_identifier,
@ -70,34 +88,31 @@ class TestQuotePgIdentifier(object):
} }
def check_valid_quotes(self, identifier, quoted_identifier): def check_valid_quotes(self, identifier, quoted_identifier):
tools.eq_(pg_quote_identifier(identifier, 'table'), quoted_identifier) eq_(pg_quote_identifier(identifier, 'table'), quoted_identifier)
def test_valid_quotes(self): def test_valid_quotes(self):
for identifier in self.valid: for identifier in self.valid:
yield self.check_valid_quotes, identifier, self.valid[identifier] yield self.check_valid_quotes, identifier, self.valid[identifier]
def check_invalid_quotes(self, identifier, id_type, msg): def check_invalid_quotes(self, identifier, id_type, msg):
if hasattr(tools, 'assert_raises_regexp'): assert_raises_regexp(SQLParseError, msg, pg_quote_identifier, *(identifier, id_type))
tools.assert_raises_regexp(SQLParseError, msg, pg_quote_identifier, *(identifier, id_type))
else:
tools.assert_raises(SQLParseError, pg_quote_identifier, *(identifier, id_type))
def test_invalid_quotes(self): def test_invalid_quotes(self):
for test in self.invalid: for test in self.invalid:
yield self.check_invalid_quotes, test[0], test[1], self.invalid[test] yield self.check_invalid_quotes, test[0], test[1], self.invalid[test]
def test_how_many_dots(self): def test_how_many_dots(self):
tools.eq_(pg_quote_identifier('role', 'role'), '"role"') eq_(pg_quote_identifier('role', 'role'), '"role"')
tools.assert_raises_regexp(SQLParseError, "PostgreSQL does not support role with more than 1 dots", pg_quote_identifier, *('role.more', 'role')) assert_raises_regexp(SQLParseError, "PostgreSQL does not support role with more than 1 dots", pg_quote_identifier, *('role.more', 'role'))
tools.eq_(pg_quote_identifier('db', 'database'), '"db"') eq_(pg_quote_identifier('db', 'database'), '"db"')
tools.assert_raises_regexp(SQLParseError, "PostgreSQL does not support database with more than 1 dots", pg_quote_identifier, *('db.more', 'database')) assert_raises_regexp(SQLParseError, "PostgreSQL does not support database with more than 1 dots", pg_quote_identifier, *('db.more', 'database'))
tools.eq_(pg_quote_identifier('db.schema', 'schema'), '"db"."schema"') eq_(pg_quote_identifier('db.schema', 'schema'), '"db"."schema"')
tools.assert_raises_regexp(SQLParseError, "PostgreSQL does not support schema with more than 2 dots", pg_quote_identifier, *('db.schema.more', 'schema')) assert_raises_regexp(SQLParseError, "PostgreSQL does not support schema with more than 2 dots", pg_quote_identifier, *('db.schema.more', 'schema'))
tools.eq_(pg_quote_identifier('db.schema.table', 'table'), '"db"."schema"."table"') eq_(pg_quote_identifier('db.schema.table', 'table'), '"db"."schema"."table"')
tools.assert_raises_regexp(SQLParseError, "PostgreSQL does not support table with more than 3 dots", pg_quote_identifier, *('db.schema.table.more', 'table')) assert_raises_regexp(SQLParseError, "PostgreSQL does not support table with more than 3 dots", pg_quote_identifier, *('db.schema.table.more', 'table'))
tools.eq_(pg_quote_identifier('db.schema.table.column', 'column'), '"db"."schema"."table"."column"') eq_(pg_quote_identifier('db.schema.table.column', 'column'), '"db"."schema"."table"."column"')
tools.assert_raises_regexp(SQLParseError, "PostgreSQL does not support column with more than 4 dots", pg_quote_identifier, *('db.schema.table.column.more', 'column')) assert_raises_regexp(SQLParseError, "PostgreSQL does not support column with more than 4 dots", pg_quote_identifier, *('db.schema.table.column.more', 'column'))

7
tox.ini Normal file
View file

@ -0,0 +1,7 @@
[tox]
envlist = py26,py27
[testenv]
deps = -r{toxinidir}/test-requirements.txt
whitelist_externals = make
commands = make tests