wordpress-charmers team mailing list archive
-
wordpress-charmers team
-
Mailing list archive
-
Message #00448
[Merge] ~tcuthbert/charm-k8s-wordpress:update_charm into charm-k8s-wordpress:master
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]
Follow ups