diff --git a/.github/workflows/black.yml b/.github/workflows/black.yml index 551ef6b6..92d0fa02 100644 --- a/.github/workflows/black.yml +++ b/.github/workflows/black.yml @@ -32,4 +32,4 @@ jobs: # run black - name: run black - run: black src/ --check --diff --line-length 79 + run: black src/ diff --git a/.github/workflows/flake8.yml b/.github/workflows/flake8.yml index 0fb3d9b7..c3b66a58 100644 --- a/.github/workflows/flake8.yml +++ b/.github/workflows/flake8.yml @@ -32,4 +32,4 @@ jobs: # run flake8 - name: run flake8 - run: flake8 src/ setup.py --ignore E203,W503 + run: flake8 src/ setup.py diff --git a/setup.cfg b/setup.cfg index f1aa06cb..c726a5e2 100644 --- a/setup.cfg +++ b/setup.cfg @@ -4,7 +4,6 @@ ignore = .coveragerc .editorconfig .gitattributes - bootstrap-buildout.py [isort] # for details see @@ -14,3 +13,12 @@ force_single_line = True lines_after_imports = 2 line_length = 200 not_skip = __init__.py + +[flake8] +exclude = bootstrap.py,docs,*.egg.,omelette +max-complexity = 15 +max-line-length = 100000 +extend-ignore = + E203, + C901, + C101 diff --git a/src/rer/newsletter/configure.zcml b/src/rer/newsletter/configure.zcml index 62820959..6764fe4b 100644 --- a/src/rer/newsletter/configure.zcml +++ b/src/rer/newsletter/configure.zcml @@ -55,6 +55,14 @@ directory="profiles/uninstall" post_handler=".setuphandlers.uninstall" /> + + - 1004 + 1005 profile-plone.app.tiles:default diff --git a/src/rer/newsletter/profiles/to_1005/registry.xml b/src/rer/newsletter/profiles/to_1005/registry.xml new file mode 100644 index 00000000..1d360342 --- /dev/null +++ b/src/rer/newsletter/profiles/to_1005/registry.xml @@ -0,0 +1,13 @@ + + + + + + + diff --git a/src/rer/newsletter/setuphandlers.py b/src/rer/newsletter/setuphandlers.py index 2f45d744..25388cc8 100644 --- a/src/rer/newsletter/setuphandlers.py +++ b/src/rer/newsletter/setuphandlers.py @@ -12,7 +12,7 @@ class HiddenProfiles(object): def getNonInstallableProfiles(self): """Hide uninstall profile from site-creation and quickinstaller""" - return ["rer.newsletter:uninstall"] + return ["rer.newsletter:uninstall", "rer.newsletter:to_1005"] def post_install(context): diff --git a/src/rer/newsletter/tests/test_subscriptions_adapter.py b/src/rer/newsletter/tests/test_subscriptions_adapter.py index e0c09ccd..cced2673 100644 --- a/src/rer/newsletter/tests/test_subscriptions_adapter.py +++ b/src/rer/newsletter/tests/test_subscriptions_adapter.py @@ -81,23 +81,17 @@ def test_emails_are_stored_lowered(self): def test_subscribe_email_twice_return_error(self): self.subscribers_adapter.subscribe("foo@foo.com") - self.assertEqual( - len(self.subscribers_adapter.channel_subscriptions.keys()), 1 - ) + self.assertEqual(len(self.subscribers_adapter.channel_subscriptions.keys()), 1) status, token = self.subscribers_adapter.subscribe("foo@foo.com") - self.assertEqual( - len(self.subscribers_adapter.channel_subscriptions.keys()), 1 - ) + self.assertEqual(len(self.subscribers_adapter.channel_subscriptions.keys()), 1) self.assertEqual(token, None) self.assertEqual(status, ALREADY_SUBSCRIBED) # also if we try with capital letters status, token = self.subscribers_adapter.subscribe("Foo@FoO.coM") - self.assertEqual( - len(self.subscribers_adapter.channel_subscriptions.keys()), 1 - ) + self.assertEqual(len(self.subscribers_adapter.channel_subscriptions.keys()), 1) self.assertEqual(token, None) self.assertEqual(status, ALREADY_SUBSCRIBED) @@ -123,9 +117,7 @@ def test_activate_subscription_with_token(self): def test_cant_delete_subscription_with_wrong_token(self): status, token = self.subscribers_adapter.subscribe("foo@foo.com") - self.assertEqual( - len(self.subscribers_adapter.channel_subscriptions.keys()), 1 - ) + self.assertEqual(len(self.subscribers_adapter.channel_subscriptions.keys()), 1) status, res = self.subscribers_adapter.deleteUserWithSecret("xyz") self.assertEqual(res, None) @@ -133,39 +125,27 @@ def test_cant_delete_subscription_with_wrong_token(self): def test_cant_delete_subscription_with_wrong_email(self): status, token = self.subscribers_adapter.subscribe("foo@foo.com") - self.assertEqual( - len(self.subscribers_adapter.channel_subscriptions.keys()), 1 - ) + self.assertEqual(len(self.subscribers_adapter.channel_subscriptions.keys()), 1) status = self.subscribers_adapter.deleteUser("bar@bar.com") self.assertEqual(status, MAIL_NOT_PRESENT) def test_delete_subscription_with_email(self): status, token = self.subscribers_adapter.subscribe("foo@foo.com") - self.assertEqual( - len(self.subscribers_adapter.channel_subscriptions.keys()), 1 - ) + self.assertEqual(len(self.subscribers_adapter.channel_subscriptions.keys()), 1) status = self.subscribers_adapter.deleteUser("foo@foo.com") self.assertEqual(status, OK) - self.assertEqual( - len(self.subscribers_adapter.channel_subscriptions.keys()), 0 - ) + self.assertEqual(len(self.subscribers_adapter.channel_subscriptions.keys()), 0) def test_delete_subscription_with_token(self): status, token = self.subscribers_adapter.subscribe("foo@foo.com") - self.assertEqual( - len(self.subscribers_adapter.channel_subscriptions.keys()), 1 - ) + self.assertEqual(len(self.subscribers_adapter.channel_subscriptions.keys()), 1) - status, res = self.subscribers_adapter.deleteUserWithSecret( - secret=token - ) + status, res = self.subscribers_adapter.deleteUserWithSecret(secret=token) self.assertEqual(res, "foo@foo.com") self.assertEqual(status, OK) - self.assertEqual( - len(self.subscribers_adapter.channel_subscriptions.keys()), 0 - ) + self.assertEqual(len(self.subscribers_adapter.channel_subscriptions.keys()), 0) def test_add_user_required_mail(self): self.assertRaises(TypeError, self.subscribers_adapter.addUser) @@ -183,9 +163,7 @@ def test_unsubscribe_user_required_mail(self): def test_unsubscribe_user_with_mail(self): self.subscribers_adapter.addUser("foo@foo.com") - self.assertEqual( - len(self.subscribers_adapter.channel_subscriptions.keys()), 1 - ) + self.assertEqual(len(self.subscribers_adapter.channel_subscriptions.keys()), 1) subscribers = self.subscribers_adapter.channel_subscriptions status, token = self.subscribers_adapter.unsubscribe("foo@foo.com") @@ -194,9 +172,7 @@ def test_unsubscribe_user_with_mail(self): def test_unsubscribe_user_with_wrong_mail(self): self.subscribers_adapter.addUser("foo@foo.com") - self.assertEqual( - len(self.subscribers_adapter.channel_subscriptions.keys()), 1 - ) + self.assertEqual(len(self.subscribers_adapter.channel_subscriptions.keys()), 1) status, token = self.subscribers_adapter.unsubscribe("bar@bar.com") @@ -214,21 +190,11 @@ def test_export_users_list(self): self.assertEqual(len(res_json), 2) def test_import_users_list(self): - self.assertEqual( - len(self.subscribers_adapter.channel_subscriptions.keys()), 0 - ) - self.subscribers_adapter.importUsersList( - ["foo@foo.com", "bar@bar.com"] - ) - self.assertEqual( - len(self.subscribers_adapter.channel_subscriptions.keys()), 2 - ) + self.assertEqual(len(self.subscribers_adapter.channel_subscriptions.keys()), 0) + self.subscribers_adapter.importUsersList(["foo@foo.com", "bar@bar.com"]) + self.assertEqual(len(self.subscribers_adapter.channel_subscriptions.keys()), 2) def test_import_users_list_with_wrong_mail(self): - self.assertEqual( - len(self.subscribers_adapter.channel_subscriptions.keys()), 0 - ) + self.assertEqual(len(self.subscribers_adapter.channel_subscriptions.keys()), 0) self.subscribers_adapter.importUsersList(["foo@foo.com", "bar"]) - self.assertEqual( - len(self.subscribers_adapter.channel_subscriptions.keys()), 1 - ) + self.assertEqual(len(self.subscribers_adapter.channel_subscriptions.keys()), 1) diff --git a/src/rer/newsletter/upgrades.py b/src/rer/newsletter/upgrades.py index b13ae6b4..5b7ab447 100644 --- a/src/rer/newsletter/upgrades.py +++ b/src/rer/newsletter/upgrades.py @@ -14,6 +14,11 @@ KEY = "rer.newsletter.channel.history" +def extract_send_history(item): + history = ContentHistoryView(item, item.REQUEST).fullHistory() + return [x for x in history if x["action"] == "Invio"] + + def migrate_to_1001(context): setup_tool = api.portal.get_tool("portal_setup") setup_tool.runImportStepFromProfile(default_profile, "plone.app.registry") @@ -83,6 +88,9 @@ def migrate_to_1004(context): ) -def extract_send_history(item): - history = ContentHistoryView(item, item.REQUEST).fullHistory() - return [x for x in history if x["action"] == "Invio"] +def migrate_to_1005(context): + setup_tool = api.portal.get_tool("portal_setup") + setup_tool.runImportStepFromProfile( + "profile-rer.newsletter:to_1005", "plone.app.registry" + ) + logger.info("Updated to 1005") diff --git a/src/rer/newsletter/upgrades.zcml b/src/rer/newsletter/upgrades.zcml index 01522d73..fc46156f 100644 --- a/src/rer/newsletter/upgrades.zcml +++ b/src/rer/newsletter/upgrades.zcml @@ -39,5 +39,12 @@ destination="1004" handler=".upgrades.migrate_to_1004" /> - +