Commit
This commit does not belong to any branch on this repository, and may belong to a fork outside of the repository.
* switch to pytest * add language tool test
- Loading branch information
Showing
7 changed files
with
478 additions
and
412 deletions.
There are no files selected for viewing
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
|
@@ -7,4 +7,4 @@ install: | |
- pip install -U pycodestyle | ||
- pip install . | ||
# command to run tests | ||
script: nosetests | ||
script: py.test |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -1,58 +1,96 @@ | ||
import unittest | ||
from __future__ import print_function | ||
import subprocess | ||
import shutil | ||
import os | ||
import contextlib | ||
|
||
import pytest | ||
|
||
from .. import main | ||
from .. import cards as domdiv_cards | ||
|
||
|
||
class TestCardDB(unittest.TestCase): | ||
@pytest.fixture | ||
def rmtestcardb(request): | ||
|
||
def rmd(): | ||
testcardb_dir = os.path.join(str(request.config.rootdir), 'tools/card_db') | ||
if os.path.exists(testcardb_dir): | ||
print('removing {}'.format(testcardb_dir)) | ||
shutil.rmtree(testcardb_dir) | ||
request.addfinalizer(rmd) | ||
|
||
|
||
def test_cardread(): | ||
options = main.parse_opts([]) | ||
options.data_path = '.' | ||
cards = main.read_card_data(options) | ||
assert len(cards) == 524 | ||
valid_cardsets = { | ||
u'base', | ||
u'dominion1stEdition', | ||
u'dominion2ndEdition', | ||
u'dominion2ndEditionUpgrade', | ||
u'intrigue1stEdition', | ||
u'intrigue2ndEdition', | ||
u'intrigue2ndEditionUpgrade', | ||
u'seaside', | ||
u'alchemy', | ||
u'prosperity', | ||
u'cornucopia extras', | ||
u'cornucopia', | ||
u'hinterlands', | ||
u'dark ages', | ||
u'dark ages extras', | ||
u'guilds', | ||
u'adventures', | ||
u'adventures extras', | ||
u'empires', | ||
u'empires extras', | ||
u'nocturne', | ||
u'nocturne extras', | ||
u'promo', | ||
u'extras', | ||
u'animals' | ||
} | ||
for c in cards: | ||
assert isinstance(c, domdiv_cards.Card) | ||
assert c.cardset_tag in valid_cardsets | ||
|
||
def test_cardread(self): | ||
options = main.parse_opts([]) | ||
|
||
def test_languages(): | ||
languages = main.get_languages('card_db') | ||
for lang in languages: | ||
print('checking ' + lang) | ||
# for now, just test that they load | ||
options = main.parse_opts(['--language', lang]) | ||
options.data_path = '.' | ||
cards = main.read_card_data(options) | ||
self.assertEquals(len(cards), 524) | ||
valid_cardsets = { | ||
u'base', | ||
u'dominion1stEdition', | ||
u'dominion2ndEdition', | ||
u'dominion2ndEditionUpgrade', | ||
u'intrigue1stEdition', | ||
u'intrigue2ndEdition', | ||
u'intrigue2ndEditionUpgrade', | ||
u'seaside', | ||
u'alchemy', | ||
u'prosperity', | ||
u'cornucopia extras', | ||
u'cornucopia', | ||
u'hinterlands', | ||
u'dark ages', | ||
u'dark ages extras', | ||
u'guilds', | ||
u'adventures', | ||
u'adventures extras', | ||
u'empires', | ||
u'empires extras', | ||
u'nocturne', | ||
u'nocturne extras', | ||
u'promo', | ||
u'extras', | ||
u'animals' | ||
} | ||
for c in cards: | ||
self.assertIsInstance(c, domdiv_cards.Card) | ||
self.assertIn(c.cardset_tag, valid_cardsets) | ||
|
||
def test_languages(self): | ||
languages = main.get_languages('card_db') | ||
for lang in languages: | ||
print('checking ' + lang) | ||
# for now, just test that they load | ||
options = main.parse_opts(['--language', lang]) | ||
options.data_path = '.' | ||
cards = main.read_card_data(options) | ||
self.assertTrue(cards, '"{}" cards did not read properly'.format(lang)) | ||
cards = main.add_card_text(options, cards, 'en_us') | ||
cards = main.add_card_text(options, cards, lang) | ||
if lang == 'it': | ||
self.assertIn("Maledizione", [card.name for card in cards]) | ||
elif lang == 'de': | ||
self.assertIn("Fluch", [card.name for card in cards]) | ||
assert cards, '"{}" cards did not read properly'.format(lang) | ||
cards = main.add_card_text(options, cards, 'en_us') | ||
cards = main.add_card_text(options, cards, lang) | ||
if lang == 'it': | ||
assert "Maledizione" in [card.name for card in cards] | ||
elif lang == 'de': | ||
assert "Fluch" in [card.name for card in cards] | ||
|
||
|
||
@contextlib.contextmanager | ||
def change_cwd(d): | ||
curdir = os.getcwd() | ||
try: | ||
os.chdir(d) | ||
yield | ||
finally: | ||
os.chdir(curdir) | ||
|
||
|
||
def test_languagetool_run(pytestconfig): | ||
with change_cwd(str(pytestconfig.rootdir)): | ||
cmd = 'python tools/update_language.py' | ||
print(cmd) | ||
assert subprocess.check_call(cmd.split()) == 0 | ||
cmd = 'diff -rw domdiv/card_db tools/card_db' | ||
out = subprocess.check_output(cmd.split(), stderr=subprocess.STDOUT) | ||
print(out) | ||
assert out == '' |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -1,13 +1,10 @@ | ||
import unittest | ||
import pycodestyle | ||
import glob | ||
|
||
import pycodestyle | ||
|
||
class TestCodeFormat(unittest.TestCase): | ||
|
||
def test_conformance(self): | ||
"""Test that we conform to PEP-8.""" | ||
style = pycodestyle.StyleGuide(max_line_length=120) | ||
result = style.check_files(glob.glob('*.py') + glob.glob('domdiv/*.py') + glob.glob('tests/*.py')) | ||
self.assertEqual(result.total_errors, 0, | ||
"Found code style errors (and warnings).") | ||
def test_conformance(): | ||
"""Test that we conform to PEP-8.""" | ||
style = pycodestyle.StyleGuide(max_line_length=120) | ||
result = style.check_files(glob.glob('*.py') + glob.glob('domdiv/*.py') + glob.glob('tests/*.py')) | ||
assert result.total_errors == 0, "Found code style errors (and warnings)." |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -1,34 +1,34 @@ | ||
import unittest | ||
from .. import main | ||
from reportlab.lib.units import cm | ||
|
||
from .. import main | ||
|
||
|
||
def test_horizontal(): | ||
# should be the default | ||
options = main.parse_opts([]) | ||
assert options.orientation == 'horizontal' | ||
main.calculate_layout(options) | ||
assert options.numDividersHorizontal == 2 | ||
assert options.numDividersVertical == 3 | ||
assert options.dividerWidth == 9.1 * cm | ||
assert options.labelHeight == 0.9 * cm | ||
assert options.dividerHeight == 5.9 * cm + options.labelHeight | ||
|
||
class TestLayout(unittest.TestCase): | ||
|
||
def test_horizontal(self): | ||
# should be the default | ||
options = main.parse_opts([]) | ||
self.assertEquals(options.orientation, 'horizontal') | ||
main.calculate_layout(options) | ||
self.assertEquals(options.numDividersHorizontal, 2) | ||
self.assertEquals(options.numDividersVertical, 3) | ||
self.assertEquals(options.dividerWidth, 9.1 * cm) | ||
self.assertEquals(options.labelHeight, 0.9 * cm) | ||
self.assertEquals(options.dividerHeight, 5.9 * cm + options.labelHeight) | ||
def test_vertical(): | ||
options = main.parse_opts(['--orientation', 'vertical']) | ||
assert options.orientation == 'vertical' | ||
main.calculate_layout(options) | ||
assert options.numDividersHorizontal == 3 | ||
assert options.numDividersVertical == 2 | ||
assert options.dividerWidth == 5.9 * cm | ||
assert options.labelHeight == 0.9 * cm | ||
assert options.dividerHeight == 9.1 * cm + options.labelHeight | ||
|
||
def test_vertical(self): | ||
options = main.parse_opts(['--orientation', 'vertical']) | ||
self.assertEquals(options.orientation, 'vertical') | ||
main.calculate_layout(options) | ||
self.assertEquals(options.numDividersHorizontal, 3) | ||
self.assertEquals(options.numDividersVertical, 2) | ||
self.assertEquals(options.dividerWidth, 5.9 * cm) | ||
self.assertEquals(options.labelHeight, 0.9 * cm) | ||
self.assertEquals(options.dividerHeight, 9.1 * cm + options.labelHeight) | ||
|
||
def test_sleeved(self): | ||
options = main.parse_opts(['--size', 'sleeved']) | ||
main.calculate_layout(options) | ||
self.assertEquals(options.dividerWidth, 9.4 * cm) | ||
self.assertEquals(options.labelHeight, 0.9 * cm) | ||
self.assertEquals(options.dividerHeight, 6.15 * cm + options.labelHeight) | ||
def test_sleeved(): | ||
options = main.parse_opts(['--size', 'sleeved']) | ||
main.calculate_layout(options) | ||
assert options.dividerWidth == 9.4 * cm | ||
assert options.labelHeight == 0.9 * cm | ||
assert options.dividerHeight == 6.15 * cm + options.labelHeight |
Oops, something went wrong.