Fix bug 564

This fixes bug 684, which noted that the workload message was not being
passed to the callback when removing charms.

This also fixes some lint errors and adds tear-down of the per-ns model
in integration tests

Change-Id: I83be9e3d951cf10a7479ea2e55074526403cf674
Signed-off-by: Adam Israel <adam.israel@canonical.com>
diff --git a/tests/base.py b/tests/base.py
index e4111eb..4d26a7f 100644
--- a/tests/base.py
+++ b/tests/base.py
@@ -568,12 +568,17 @@
                     )
                     subprocess.check_call(shlex.split(cmd))
 
-                self.artifacts[charm] = {
-                    'tmpdir': builds,
-                    'charm': "{}/builds/{}".format(builds, charm),
-                }
             except subprocess.CalledProcessError as e:
-                raise Exception("charm build failed: {}.".format(e))
+                # charm build will return error code 100 if the charm fails
+                # the auto-run of charm proof, which we can safely ignore for
+                # our CI charms.
+                if e.returncode != 100:
+                    raise Exception("charm build failed: {}.".format(e))
+
+            self.artifacts[charm] = {
+                'tmpdir': builds,
+                'charm': "{}/builds/{}".format(builds, charm),
+            }
 
         return self.artifacts[charm]['charm']
 
@@ -897,6 +902,7 @@
                             application,
                         ):
                             break
+                    await self.n2vc.DestroyNetworkService(self.ns_name)
 
                     # Need to wait for the charm to finish, because native charms
                     if self.state[application]['container']:
diff --git a/tests/test_model.py b/tests/test_model.py
index b54a7bb..ff164fa 100644
--- a/tests/test_model.py
+++ b/tests/test_model.py
@@ -2,10 +2,8 @@
 Test N2VC's ssh key generation
 """
 import n2vc
-import os
 import pytest
 from . import base
-import tempfile
 import uuid