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:
1 parent
e859dc36ef
commit
31a71447f0
140 files changed
+1931
-1289
No files matched your search
Whitespace-only changes.
@@ -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
|
||||
@@ -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)
|
||||
@@ -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
|
||||
@@ -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"
|
||||
Reference in new issue
Block a user