Thomas Cuthbert has proposed merging ~tcuthbert/charm-k8s-wordpress:update_charm into charm-k8s-wordpress:master.
Requested reviews: Wordpress Charmers (wordpress-charmers) For more details, see: https://code.launchpad.net/~tcuthbert/charm-k8s-wordpress/+git/charm-k8s-wordpress-1/+merge/393537 -- Your team Wordpress Charmers is requested to review the proposed merge of ~tcuthbert/charm-k8s-wordpress:update_charm into charm-k8s-wordpress:master.
diff --git a/.gitignore b/.gitignore index 33ab628..ed12673 100644 --- a/.gitignore +++ b/.gitignore @@ -1,3 +1,5 @@ +build +*.charm .tox .coverage __pycache__ diff --git a/.gitmodules b/.gitmodules deleted file mode 100644 index 8c05fa9..0000000 --- a/.gitmodules +++ /dev/null @@ -1,3 +0,0 @@ -[submodule "mod/operator"] - path = mod/operator - url = https://github.com/canonical/operator diff --git a/.jujuignore b/.jujuignore new file mode 100644 index 0000000..739b280 --- /dev/null +++ b/.jujuignore @@ -0,0 +1,5 @@ +/env +/image +*.py[cod] +*.charm +Makefile diff --git a/Makefile b/Makefile index 14d1b2e..c46ed23 100644 --- a/Makefile +++ b/Makefile @@ -1,3 +1,7 @@ +wordpress.charm: src/*.py requirements.txt + @echo "Building Kubernetes WordPress Charm." + @charmcraft build + format: @echo "Normalising python layout with black." @tox -e black @@ -20,5 +24,6 @@ clean: @echo "Cleaning files" @git clean -fXd || true @rm -r /tmp/charm-k8s-wordpress/.tox + @rm -r ./build || true .PHONY: format lint test unittest integration clean diff --git a/dispatch b/dispatch deleted file mode 120000 index ac5c45c..0000000 --- a/dispatch +++ /dev/null @@ -1 +0,0 @@ -src/charm.py \ No newline at end of file diff --git a/hooks/start b/hooks/start deleted file mode 120000 index 25b1f68..0000000 --- a/hooks/start +++ /dev/null @@ -1 +0,0 @@ -../src/charm.py \ No newline at end of file diff --git a/lib/ops b/lib/ops deleted file mode 120000 index d934193..0000000 --- a/lib/ops +++ /dev/null @@ -1 +0,0 @@ -../mod/operator/ops \ No newline at end of file diff --git a/mod/operator b/mod/operator deleted file mode 160000 index 63e7d9e..0000000 --- a/mod/operator +++ /dev/null @@ -1 +0,0 @@ -Subproject commit 63e7d9e4dc2a38a3fbc5623ff504eb18173e3f41 diff --git a/requirements.txt b/requirements.txt index 888e37a..addda44 100644 --- a/requirements.txt +++ b/requirements.txt @@ -1,2 +1,3 @@ # Include python requirements here requests +ops diff --git a/src/charm.py b/src/charm.py index a7f87fc..68d3b60 100755 --- a/src/charm.py +++ b/src/charm.py @@ -3,14 +3,11 @@ import io import logging import subprocess -import sys from pprint import pprint from yaml import safe_load from wordpress import Wordpress, password_generator, WORDPRESS_SECRETS -sys.path.append("lib") - from ops.charm import CharmBase, CharmEvents from ops.framework import EventBase, EventSource, StoredState from ops.main import main diff --git a/tests/unit/requirements.txt b/tests/unit/requirements.txt index c2bd57a..460a692 100644 --- a/tests/unit/requirements.txt +++ b/tests/unit/requirements.txt @@ -1,6 +1,7 @@ requests charmhelpers charms.reactive +flake8 freezegun mock pytest diff --git a/tests/unit/test_charm.py b/tests/unit/test_charm.py index c72e1d5..795b0fa 100644 --- a/tests/unit/test_charm.py +++ b/tests/unit/test_charm.py @@ -3,10 +3,6 @@ import copy import mock import unittest -import sys - -sys.path.append('lib') -sys.path.append('src') from charm import WordpressK8sCharm, create_wordpress_secrets, gather_wordpress_secrets from wordpress import WORDPRESS_SECRETS @@ -34,7 +30,7 @@ class TestWordpressK8sCharm(unittest.TestCase): self.harness = testing.Harness(WordpressK8sCharm) self.harness.begin() - self.harness.charm.model.config = copy.deepcopy(self.test_model_config) + self.harness.update_config(copy.deepcopy(self.test_model_config)) def test_is_config_valid(self): # Test a valid model config. @@ -45,22 +41,22 @@ class TestWordpressK8sCharm(unittest.TestCase): want_msg_fmt = "Missing required config: {}" want_keys = ("image", "db_host", "db_name", "db_user", "db_password", "tls_secret_name") for wanted_key in want_keys: - self.harness.charm.model.config[wanted_key] = "" + self.harness.update_config({wanted_key: ""}) want_false = self.harness.charm.is_valid_config() self.assertFalse(want_false) self.assertLogs(want_msg_fmt.format(wanted_key), level="INFO") - self.harness.charm.model.config = copy.deepcopy(self.test_model_config) + self.harness.update_config(copy.deepcopy(self.test_model_config)) # Test for missing initial_settings in model config. - self.harness.charm.model.config["initial_settings"] = "" + self.harness.update_config({"initial_settings": ""}) want_false = self.harness.charm.is_valid_config() self.assertFalse(want_false) self.assertLogs("No initial_setting provided. Skipping first install.", level="INFO") - self.harness.charm.model.config = copy.deepcopy(self.test_model_config) + self.harness.update_config(copy.deepcopy(self.test_model_config)) # Test unit status msg. for wanted_key in want_keys: - self.harness.charm.model.config[wanted_key] = "" + self.harness.update_config({wanted_key: ""}) expected_msg = want_msg_fmt.format(" ".join(want_keys)) self.harness.charm.is_valid_config() self.assertIsInstance(self.harness.charm.unit.status, BlockedStatus) @@ -90,8 +86,10 @@ class TestWordpressK8sCharm(unittest.TestCase): self.assertEqual(len(wp_secrets[key]), 64) def test_make_pod_resources(self): - self.harness.charm.model.config["blog_hostname"] = "blog.example.com" - self.harness.charm.model.config["tls_secret_name"] = "blog-example-com-tls" + self.harness.update_config({ + "blog_hostname": "blog.example.com", + "tls_secret_name": "blog-example-com-tls" + }) # Test for https://bugs.launchpad.net/juju/+bug/1884674 ingress_name = 'wordpress-k8s-ingress' self.assertNotEqual(ingress_name, self.harness.charm.app.name) diff --git a/tests/unit/test_wordpress.py b/tests/unit/test_wordpress.py index 5ebc90a..f204cac 100644 --- a/tests/unit/test_wordpress.py +++ b/tests/unit/test_wordpress.py @@ -2,12 +2,9 @@ import copy import mock import requests import string -import sys import unittest import yaml -sys.path.append("src") - import charm import wordpress diff --git a/tox.ini b/tox.ini index 4f55f1b..fdaabc8 100644 --- a/tox.ini +++ b/tox.ini @@ -19,7 +19,8 @@ commands = deps = -r{toxinidir}/tests/unit/requirements.txt -r{toxinidir}/requirements.txt setenv = - PYTHONPATH={toxinidir}/lib +# PYTHONPATH={toxinidir}/lib + PYTHONPATH={toxinidir}/src:{toxinidir}/build/lib:{toxinidir}/build/venv TZ=UTC [testenv:integration]
-- Mailing list: https://launchpad.net/~wordpress-charmers Post to : wordpress-charmers@lists.launchpad.net Unsubscribe : https://launchpad.net/~wordpress-charmers More help : https://help.launchpad.net/ListHelp