precommit git hooks, rearrange package structure (#251)

* precommit hooks and changes because of these
* mv package into src dir
* add requirements file, clean up setup reqs, add precommit to CI
This commit is contained in:
Peter authored and GitHub committed 2019-05-23 16:17:30 -07:00
1 parent e859dc36ef
commit 31a71447f0
140 files changed
+1931 -1289

No files matched your search

View File
Whitespace-only changes.
+142
View File
@@ -0,0 +1,142 @@
from __future__ import print_function
import subprocess
import shutil
import os
import contextlib
import pytest
from domdiv import main
from domdiv import cards as domdiv_cards
@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():
cardsExpected = 574
options = main.parse_opts([])
options.data_path = "."
cards = main.read_card_data(options)
assert len(cards) == cardsExpected
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"renaissance",
u"extras",
u"animals",
}
for c in cards:
assert isinstance(c, domdiv_cards.Card)
assert c.cardset_tag in valid_cardsets
# Option modified card count
options = main.parse_opts(
["--no-trash", "--curse10", "--start-decks", "--include-blanks", "7"]
)
options = main.clean_opts(options)
options.data_path = "."
cards = main.read_card_data(options)
# Total delta cards is +28 from
# Trash: -1 * 3 sets = -3
# Curse: +2 * 4 sets = +8
# Start Decks: +4 * 4 sets = +16
# Blanks: +7 = +7
assert len(cards) == cardsExpected + 28
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)
assert cards, '"{}" cards did not read properly'.format(lang)
cards = main.add_card_text(cards, "en_us")
cards = main.add_card_text(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 -rwB src/domdiv/card_db tools/card_db"
try:
out = subprocess.check_output(cmd.split(), stderr=subprocess.STDOUT)
except subprocess.CalledProcessError as e:
assert e.output == ""
assert out.decode("utf-8") == ""
def test_only_type():
options = main.parse_opts(
[
"--expansions",
"base",
"alchemy",
"--include-blanks",
"5",
"--only-type-any",
"blank",
"curse",
"--only-type-all",
"attack",
"action",
]
)
options = main.clean_opts(options)
options.data_path = "."
cards = main.read_card_data(options)
cards = main.filter_sort_cards(cards, options)
# Total 8 from
# Blank: +5 added in options
# Curse: +1 from base
# Action Attack: +2 from Alchemy
assert len(cards) == 8
+24
View File
@@ -0,0 +1,24 @@
from __future__ import print_function
import pytest
from domdiv import main
def get_clean_opts(opts):
options = main.parse_opts(opts)
options = main.clean_opts(options)
return options
def test_standard_opts():
# should be the default
options = get_clean_opts([])
main.generate(options)
@pytest.mark.parametrize("lang", main.get_languages("card_db"))
def test_grouped(lang):
print("checking " + lang)
options = get_clean_opts(["--special-card-groups", "--language={}".format(lang)])
main.generate(options)
+34
View File
@@ -0,0 +1,34 @@
from reportlab.lib.units import cm
from domdiv 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
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_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
+315
View File
@@ -0,0 +1,315 @@
from domdiv import main
####################
# Card Text and Tab Default Test
####################
def test_text_tabs_default():
# should be the default
options = main.parse_opts([])
assert options.text_front == "card"
assert options.text_back == "rules"
assert options.tab_name_align == "left"
assert options.tab_side == "right-alternate"
main.calculate_layout(options)
assert options.tab_name_align == "left"
####################
# Card Text Tests
####################
def test_text_card_rules():
options = main.parse_opts(["--front", "card", "--back", "rules"])
assert options.text_front == "card"
assert options.text_back == "rules"
def test_text_card_blank():
options = main.parse_opts(["--front", "card", "--back", "blank"])
assert options.text_front == "card"
assert options.text_back == "blank"
def test_text_card_card():
options = main.parse_opts(["--front", "card", "--back", "card"])
assert options.text_front == "card"
assert options.text_back == "card"
def test_text_card_none():
options = main.parse_opts(["--front", "card", "--back", "none"])
assert options.text_front == "card"
assert options.text_back == "none"
def test_text_rules_rules():
options = main.parse_opts(["--front", "rules", "--back", "rules"])
assert options.text_front == "rules"
assert options.text_back == "rules"
def test_text_rules_blank():
options = main.parse_opts(["--front", "rules", "--back", "blank"])
assert options.text_front == "rules"
assert options.text_back == "blank"
def test_text_rules_card():
options = main.parse_opts(["--front", "rules", "--back", "card"])
assert options.text_front == "rules"
assert options.text_back == "card"
def test_text_rules_none():
options = main.parse_opts(["--front", "rules", "--back", "none"])
assert options.text_front == "rules"
assert options.text_back == "none"
def test_text_blank_rules():
options = main.parse_opts(["--front", "blank", "--back", "rules"])
assert options.text_front == "blank"
assert options.text_back == "rules"
def test_text_blank_blank():
options = main.parse_opts(["--front", "blank", "--back", "blank"])
assert options.text_front == "blank"
assert options.text_back == "blank"
def test_text_blank_card():
options = main.parse_opts(["--front", "blank", "--back", "card"])
assert options.text_front == "blank"
assert options.text_back == "card"
def test_text_blank_none():
options = main.parse_opts(["--front", "blank", "--back", "none"])
assert options.text_front == "blank"
assert options.text_back == "none"
####################
# Card Tab Tests
####################
# --tab_name_align left
def test_tab_left_left():
options = main.parse_opts(["--tab-name-align", "left", "--tab-side", "left"])
assert options.tab_name_align == "left"
assert options.tab_side == "left"
main.calculate_layout(options)
assert options.tab_name_align == "left"
assert options.tab_side == "left"
def test_tab_left_right():
options = main.parse_opts(["--tab-name-align", "left", "--tab-side", "right"])
assert options.tab_name_align == "left"
assert options.tab_side == "right"
main.calculate_layout(options)
assert options.tab_name_align == "left"
assert options.tab_side == "right"
def test_tab_left_leftalt():
options = main.parse_opts(
["--tab-name-align", "left", "--tab-side", "left-alternate"]
)
assert options.tab_name_align == "left"
assert options.tab_side == "left-alternate"
main.calculate_layout(options)
assert options.tab_name_align == "left"
assert options.tab_side == "left-alternate"
def test_tab_left_rightalt():
options = main.parse_opts(
["--tab-name-align", "left", "--tab-side", "right-alternate"]
)
assert options.tab_name_align == "left"
assert options.tab_side == "right-alternate"
main.calculate_layout(options)
assert options.tab_name_align == "left"
assert options.tab_side == "right-alternate"
def test_tab_left_full():
options = main.parse_opts(["--tab-name-align", "left", "--tab-side", "full"])
assert options.tab_name_align == "left"
assert options.tab_side == "full"
main.calculate_layout(options)
assert options.tab_name_align == "left"
assert options.tab_side == "full"
# --tab_name_align right
def test_tab_right_left():
options = main.parse_opts(["--tab-name-align", "right", "--tab-side", "left"])
assert options.tab_name_align == "right"
assert options.tab_side == "left"
main.calculate_layout(options)
assert options.tab_name_align == "right"
assert options.tab_side == "left"
def test_tab_right_right():
options = main.parse_opts(["--tab-name-align", "right", "--tab-side", "right"])
assert options.tab_name_align == "right"
assert options.tab_side == "right"
main.calculate_layout(options)
assert options.tab_name_align == "right"
assert options.tab_side == "right"
def test_tab_right_leftalt():
options = main.parse_opts(
["--tab-name-align", "right", "--tab-side", "left-alternate"]
)
assert options.tab_name_align == "right"
assert options.tab_side == "left-alternate"
main.calculate_layout(options)
assert options.tab_name_align == "right"
assert options.tab_side == "left-alternate"
def test_tab_right_rightalt():
options = main.parse_opts(
["--tab-name-align", "right", "--tab-side", "right-alternate"]
)
assert options.tab_name_align == "right"
assert options.tab_side == "right-alternate"
main.calculate_layout(options)
assert options.tab_name_align == "right"
assert options.tab_side == "right-alternate"
def test_tab_right_full():
options = main.parse_opts(["--tab-name-align", "right", "--tab-side", "full"])
assert options.tab_name_align == "right"
assert options.tab_side == "full"
main.calculate_layout(options)
assert options.tab_name_align == "right"
assert options.tab_side == "full"
# --tab_name_align edge
def test_tab_edge_left():
options = main.parse_opts(["--tab-name-align", "edge", "--tab-side", "left"])
assert options.tab_name_align == "edge"
assert options.tab_side == "left"
main.calculate_layout(options)
assert options.tab_name_align == "edge"
assert options.tab_side == "left"
def test_tab_edge_right():
options = main.parse_opts(["--tab-name-align", "edge", "--tab-side", "right"])
assert options.tab_name_align == "edge"
assert options.tab_side == "right"
main.calculate_layout(options)
assert options.tab_name_align == "edge"
assert options.tab_side == "right"
def test_tab_edge_leftalt():
options = main.parse_opts(
["--tab-name-align", "edge", "--tab-side", "left-alternate"]
)
assert options.tab_name_align == "edge"
assert options.tab_side == "left-alternate"
main.calculate_layout(options)
assert options.tab_name_align == "edge"
assert options.tab_side == "left-alternate"
def test_tab_edge_rightalt():
options = main.parse_opts(
["--tab-name-align", "edge", "--tab-side", "right-alternate"]
)
assert options.tab_name_align == "edge"
assert options.tab_side == "right-alternate"
main.calculate_layout(options)
assert options.tab_name_align == "edge"
assert options.tab_side == "right-alternate"
def test_tab_edge_full():
options = main.parse_opts(["--tab-name-align", "edge", "--tab-side", "full"])
assert options.tab_name_align == "edge"
assert options.tab_side == "full"
options = main.clean_opts(options)
main.calculate_layout(options)
assert options.tab_name_align == "left" # special check for odd condition
assert options.tab_side == "full"
# --tab_name_align centre
def test_tab_centre_left():
options = main.parse_opts(["--tab-name-align", "centre", "--tab-side", "left"])
assert options.tab_name_align == "centre"
assert options.tab_side == "left"
main.calculate_layout(options)
assert options.tab_name_align == "centre"
assert options.tab_side == "left"
def test_tab_centre_right():
options = main.parse_opts(["--tab-name-align", "centre", "--tab-side", "right"])
assert options.tab_name_align == "centre"
assert options.tab_side == "right"
main.calculate_layout(options)
assert options.tab_name_align == "centre"
assert options.tab_side == "right"
def test_tab_centre_leftalt():
options = main.parse_opts(
["--tab-name-align", "centre", "--tab-side", "left-alternate"]
)
assert options.tab_name_align == "centre"
assert options.tab_side == "left-alternate"
main.calculate_layout(options)
assert options.tab_name_align == "centre"
assert options.tab_side == "left-alternate"
def test_tab_centre_rightalt():
options = main.parse_opts(
["--tab-name-align", "centre", "--tab-side", "right-alternate"]
)
assert options.tab_name_align == "centre"
assert options.tab_side == "right-alternate"
main.calculate_layout(options)
assert options.tab_name_align == "centre"
assert options.tab_side == "right-alternate"
def test_tab_centre_full():
options = main.parse_opts(["--tab-name-align", "centre", "--tab-side", "full"])
assert options.tab_name_align == "centre"
assert options.tab_side == "full"
main.calculate_layout(options)
assert options.tab_name_align == "centre"
assert options.tab_side == "full"
# --tab_name_align center. Just do one since this is an alias to centre
def test_tab_center_left():
options = main.parse_opts(["--tab-name-align", "center", "--tab-side", "left"])
assert options.tab_name_align == "center"
assert options.tab_side == "left"
options = main.clean_opts(options)
main.calculate_layout(options)
assert options.tab_name_align == "centre" # check for change in value
assert options.tab_side == "left"