Skip to content
Open
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
33 changes: 22 additions & 11 deletions .github/workflows/python-package.yml
Original file line number Diff line number Diff line change
Expand Up @@ -11,37 +11,48 @@ on:

jobs:
build:
runs-on: ubuntu-latest
strategy:
fail-fast: true
matrix:
python-version: ["3.9", "3.10"]

python-version:
- "3.8"
- "3.9"
- "3.10"
os:
- ubuntu-latest
- windows-latest
# - macos-latest
runs-on: ${{ matrix.os }}
env:
PYTHONIOENCODING: "utf-8"
PYTHONLEGACYWINDOWSSTDIO: "utf-8"
steps:
- uses: actions/setup-python@v2
with:
python-version: '3.10'
- uses: actions/checkout@v2
- uses: actions/cache@v2
- uses: actions/checkout@v3

- uses: actions/cache@v3
with:
path: ~/.cache/pip
key: ${{ runner.os }}-tox-${{ hashFiles('**/tox.ini') }}-${{ hashFiles('**/requirements.txt') }}-${{ hashFiles('**/constraints.txt') }}-${{ hashFiles('**/setup.py') }}
restore-keys: |
${{ runner.os }}-pip-

- name: Set up Python ${{ matrix.python-version }}
uses: actions/setup-python@v2
uses: actions/setup-python@v4
with:
python-version: ${{ matrix.python-version }}

- name: Install dependencies
run: |
python -m pip install --upgrade pip
if [ -f requirements.txt ]; then pip install -r requirements.txt; fi
pip install -r requirements.txt
pip install tox-gh-actions>=3.0.0
pip install -e .

- name: Black-Check
run: |
tox -r -e black-check

- name: Test with tox
run: |
tox -r
env:
PLATFORM: ${{ matrix.os }}
1 change: 1 addition & 0 deletions .gitignore
Original file line number Diff line number Diff line change
Expand Up @@ -17,6 +17,7 @@ _build
__pycache__
.cache
.vagrant
/Scripts
# files
local.cfg
pip-selfcheck.json
Expand Down
8 changes: 3 additions & 5 deletions bobtemplates/plone/addon.py
Original file line number Diff line number Diff line change
Expand Up @@ -46,11 +46,9 @@ def pre_render(configurator):
configurator.variables["package.longname"] = camelcasename.lower()

# jenkins.directories = 'collective/foo/something'
configurator.variables["jenkins.directories"] = configurator.variables[
"package.distributionname"
].replace(
".", "/"
) # NOQA: E501
configurator.variables["jenkins.directories"] = os.path.join(
*configurator.variables["package.distributionname"].split(".")
)

if namespaces:
configurator.variables["package.namespace_packages"] = ", ".join(
Expand Down
29 changes: 12 additions & 17 deletions bobtemplates/plone/addon/tox.ini
Original file line number Diff line number Diff line change
Expand Up @@ -5,29 +5,25 @@ envlist =
py39-lint,
py310-lint,
black-check,
py{38,37}-Plone{52},
py{37,38}-Plone{52},
py{39,310}-Plone{60},
# docs,
# coverage-report,

skip_missing_interpreters = True


[gh-actions]
python =
3.6: py36
3.7: py37
3.8: py38
3.9: py39
3.10: py310


[gh-actions:env]
PLONE-VERSION =
Plone52: Plone52
Plone60: Plone60


[testenv]
skip_install = true

Expand All @@ -36,11 +32,11 @@ extras =
test

commands =
{envbindir}/buildout -q -c {toxinidir}/{env:version_file} buildout:directory={envdir} buildout:develop={toxinidir} bootstrap
# {envbindir}/buildout -c {toxinidir}/{env:version_file} buildout:directory={envdir} buildout:develop={toxinidir} annotate
{envbindir}/buildout -n -qq -c {toxinidir}/{env:version_file} buildout:directory={envdir} buildout:develop={toxinidir} install test robot
coverage run {envbindir}/test -v1 --auto-color {posargs}
# coverage run {envbindir}/test -v --all -t robot {posargs}
{envbindir}{/}buildout -q -c {toxinidir}{/}{env:version_file} buildout:directory={envdir} buildout:develop={toxinidir} bootstrap
# {envbindir}{/}buildout -c {toxinidir}{/}{env:version_file} buildout:directory={envdir} buildout:develop={toxinidir} annotate
{envbindir}{/}buildout -n -qq -c {toxinidir}{/}{env:version_file} buildout:directory={envdir} buildout:develop={toxinidir} install test robot
coverage run {envbindir}{/}test -v1 --auto-color {posargs}
# coverage run {envbindir}{/}test -v --all -t robot {posargs}

setenv =
COVERAGE_FILE=.coverage.{envname}
Expand Down Expand Up @@ -106,10 +102,10 @@ deps =
#flake8-polyfill

commands =
mkdir -p {toxinidir}/reports/flake8
flake8 --doctests {toxinidir}/src {toxinidir}/setup.py
isort --check-only {toxinidir}/src {toxinidir}/setup.py
# black --check --diff -v {toxinidir}/src {toxinidir}/setup.py
mkdir -p {toxinidir}{/}reports{/}flake8
flake8 --doctests {toxinidir}{/}src {toxinidir}{/}setup.py
isort --check-only {toxinidir}{/}src {toxinidir}{/}setup.py
# black --check --diff -v {toxinidir}{/}src {toxinidir}{/}setup.py

allowlist_externals =
mkdir
Expand All @@ -123,8 +119,7 @@ deps =
isort

commands =
isort {toxinidir}/src {toxinidir}/setup.py

isort {toxinidir}{/}src {toxinidir}{/}setup.py

[testenv:black-check]
basepython = python3.9
Expand Down Expand Up @@ -183,4 +178,4 @@ deps =
Sphinx

commands =
sphinx-build -b html -d _build/docs/doctrees docs _build/docs/html
sphinx-build -b html -d _build{/}docs{/}doctrees docs _build{/}docs/html
18 changes: 9 additions & 9 deletions bobtemplates/plone/base.py
Original file line number Diff line number Diff line change
Expand Up @@ -206,7 +206,7 @@ def check_method_name(configurator, question, answer):
def read_bobtemplates_ini(configurator):
bob_config = BobConfig()
config = ConfigParser()
path = configurator.target_directory + "/bobtemplate.cfg"
path = os.path.join(configurator.target_directory, "bobtemplate.cfg")
config.read(path)
if not config.sections():
return
Expand Down Expand Up @@ -337,12 +337,10 @@ def update_configure_zcml(
match_str=None,
insert_str=None,
):
if path[-1] != "/":
path += "/"
file_path = os.path.join(path, file_name)
if example_file_name:
example_file_path = os.path.join(path, example_file_name)
file_list = os.listdir(os.path.dirname(path))
file_list = os.listdir(path)
if file_name not in file_list:
print("rename example zcml file")
os.rename(example_file_path, file_path)
Expand Down Expand Up @@ -421,7 +419,7 @@ def check_root_folder(configurator, question):


def dottedname_to_path(dottedname):
path = "/".join(dottedname.split("."))
path = os.path.join(*dottedname.split("."))
return path


Expand All @@ -447,10 +445,12 @@ def base_prepare_renderer(configurator):
)

package_subpath = dottedname_to_path(configurator.variables["package.dottedname"])
configurator.variables["package_folder_rel_path"] = "/src/" + package_subpath
configurator.variables["package_folder"] = (
configurator.variables["package.root_folder"]
+ configurator.variables["package_folder_rel_path"]
configurator.variables["package_folder_rel_path"] = os.path.join(
"", "src", package_subpath
)
configurator.variables["package_folder"] = os.path.join(
configurator.variables["package.root_folder"],
configurator.variables["package_folder_rel_path"],
)
configurator.target_directory = configurator.variables["package.root_folder"]
camelcasename = (
Expand Down
6 changes: 4 additions & 2 deletions bobtemplates/plone/behavior.py
Original file line number Diff line number Diff line change
Expand Up @@ -13,7 +13,7 @@

def _update_package_configure_zcml(configurator):
file_name = "configure.zcml"
file_path = configurator.variables["package_folder"] + "/" + file_name
file_path = os.path.join(configurator.variables["package_folder"], file_name)
nsprefix = "{http://namespaces.zope.org/zope}"

with open(file_path, "r") as xml_file:
Expand All @@ -39,7 +39,9 @@ def _update_package_configure_zcml(configurator):

def _update_behaviors_configure_zcml(configurator):
file_name = "configure.zcml"
file_path = configurator.variables["package_folder"] + "/behaviors/" + file_name
file_path = os.path.join(
configurator.variables["package_folder"], "behaviors", file_name
)
example_file_path = file_path + ".example"
file_list = os.listdir(os.path.dirname(file_path))
if file_name not in file_list:
Expand Down
31 changes: 17 additions & 14 deletions bobtemplates/plone/content_type.py
Original file line number Diff line number Diff line change
Expand Up @@ -60,13 +60,11 @@ def check_global_allow(configurator, answer):
def _update_metadata_xml(configurator):
"""Add plone.app.dexterity dependency metadata.xml in Generic Setup profiles.""" # NOQA: E501
metadata_file_name = "metadata.xml"
metadata_file_dir = "profiles/default"
metadata_file_path = (
configurator.variables["package_folder"]
+ "/"
+ metadata_file_dir
+ "/"
+ metadata_file_name
metadata_file_path = os.path.join(
configurator.variables["package_folder"],
"profiles",
"default",
metadata_file_name,
)

with open(metadata_file_path, "r") as xml_file:
Expand Down Expand Up @@ -111,11 +109,11 @@ def _update_types_xml(configurator):
"""Add the new type to types.xml in Generic Setup profiles."""
types_file_name = "types.xml"
types_file_dir = "profiles/default"
types_file_path = (
configurator.target_directory + "/" + types_file_dir + "/" + types_file_name
types_file_path = os.path.join(
configurator.target_directory, types_file_dir, types_file_name
)
types_example_file_path = (
configurator.target_directory + "/" + types_file_dir + "/types.xml.example"
types_example_file_path = os.path.join(
configurator.target_directory, types_file_dir, "types.xml.example"
)
file_list = os.listdir(os.path.dirname(types_file_path))
if types_file_name not in file_list:
Expand Down Expand Up @@ -156,8 +154,11 @@ def _update_parent_types_fti_xml(configurator):
file_name = "{0}.xml".format(
parent_dexterity_type_fti_file_name,
)
file_path = "{0}/profiles/default/types/{1}".format(
file_path = os.path.join(
configurator.variables["package_folder"],
"profiles",
"default",
"types",
file_name,
)

Expand Down Expand Up @@ -186,8 +187,10 @@ def _update_parent_types_fti_xml(configurator):

def _update_rolemap_xml(configurator):
file_name = "rolemap.xml"
file_path = "{0}/profiles/default/{1}".format(
file_path = os.path.join(
configurator.variables["package_folder"],
"profiles",
"default",
file_name,
)

Expand Down Expand Up @@ -224,7 +227,7 @@ def _update_rolemap_xml(configurator):

def _update_permissions_zcml(configurator):
file_name = "permissions.zcml"
file_path = configurator.variables["package_folder"] + "/" + file_name
file_path = os.path.join(configurator.variables["package_folder"], file_name)
nsprefix = "{http://namespaces.zope.org/zope}"

with open(file_path, "r") as xml_file:
Expand Down
17 changes: 12 additions & 5 deletions bobtemplates/plone/controlpanel.py
Original file line number Diff line number Diff line change
Expand Up @@ -14,7 +14,7 @@

def _update_package_configure_zcml(configurator):
file_name = "configure.zcml"
file_path = configurator.variables["package_folder"] + "/" + file_name
file_path = os.path.join(configurator.variables["package_folder"], file_name)

with open(file_path, "r") as xml_file:
parser = etree.XMLParser(remove_blank_text=True)
Expand All @@ -35,10 +35,14 @@ def _update_package_configure_zcml(configurator):


def _update_controlpanels_configure_zcml(configurator):
directory_path = os.path.join(
configurator.variables["package_folder"],
"controlpanels",
)
file_name = "configure.zcml"
file_path = configurator.variables["package_folder"] + "/controlpanels/" + file_name
file_path = os.path.join(directory_path, file_name)
example_file_path = file_path + ".example"
file_list = os.listdir(os.path.dirname(file_path))
file_list = os.listdir(directory_path)
if file_name not in file_list:
os.rename(example_file_path, file_path)

Expand Down Expand Up @@ -72,8 +76,11 @@ def _update_controlpanels_configure_zcml(configurator):

def _update_profile_controlpanel_xml(configurator):
file_name = "controlpanel.xml"
file_path = (
configurator.variables["package_folder"] + "/profiles/default/" + file_name
file_path = os.path.join(
configurator.variables["package_folder"],
"profiles",
"default",
file_name,
)
example_file_path = file_path + ".example"
file_list = os.listdir(os.path.dirname(file_path))
Expand Down
19 changes: 8 additions & 11 deletions bobtemplates/plone/form.py
Original file line number Diff line number Diff line change
Expand Up @@ -48,12 +48,10 @@ def get_form_configuration(configurator):

def _update_forms_configure_zcml(configurator):
file_name = "configure.zcml"
directory_path = configurator.variables["package_folder"] + "/forms/"
file_path = directory_path + file_name
configure_example_file_path = (
configurator.variables["package_folder"] + "/forms/configure.zcml.example"
)
file_list = os.listdir(os.path.dirname(directory_path))
directory_path = os.path.join(configurator.variables["package_folder"], "forms")
file_path = os.path.join(directory_path, file_name)
configure_example_file_path = os.path.join(directory_path, "configure.zcml.example")
file_list = os.listdir(directory_path)
if file_name not in file_list:
os.rename(configure_example_file_path, file_path)

Expand Down Expand Up @@ -107,7 +105,7 @@ def _update_forms_configure_zcml(configurator):

def _update_configure_zcml(configurator):
file_name = "configure.zcml"
file_path = configurator.variables["package_folder"] + "/" + file_name
file_path = os.path.join(configurator.variables["package_folder"], file_name)
namespaces = "{http://namespaces.zope.org/zope}"

with open(file_path, "r") as xml_file:
Expand All @@ -129,12 +127,11 @@ def _update_configure_zcml(configurator):


def _delete_unwanted_files(configurator):
directory_path = configurator.variables["package_folder"] + "/forms/"

directory_path = os.path.join(configurator.variables["package_folder"], "forms")
file_name = "configure.zcml.example"
file_list = os.listdir(os.path.dirname(directory_path))
file_list = os.listdir(directory_path)
if file_name in file_list:
file_path = directory_path + file_name
file_path = os.path.join(directory_path, file_name)
os.remove(file_path)


Expand Down
Loading