From a3c43a8c88935a42609be13c25364140f5907ec1 Mon Sep 17 00:00:00 2001
From: Nikolay Stanchev <ns17@it-innovation.soton.ac.uk>
Date: Tue, 15 May 2018 09:39:53 +0100
Subject: [PATCH] Project structure refactoring

---
 .coveragerc                                   |  3 -
 setup.py                                      | 35 ++------
 src/clmcservice/.coveragerc                   |  3 +
 src/clmcservice/MANIFEST.in                   |  2 +
 .../clmcservice/clmcservice}/__init__.py      |  2 +-
 .../clmcservice/clmcservice}/tests.py         |  4 +-
 .../clmcservice/clmcservice}/utilities.py     |  0
 .../clmcservice/clmcservice}/views.py         |  2 +-
 .../clmcservice/development.ini               |  8 +-
 .../clmcservice/production.ini                |  8 +-
 pytest.ini => src/clmcservice/pytest.ini      |  2 +-
 src/clmcservice/setup.py                      | 84 +++++++++++++++++++
 src/clmcservice/tox.ini                       |  5 ++
 13 files changed, 113 insertions(+), 45 deletions(-)
 delete mode 100644 .coveragerc
 create mode 100644 src/clmcservice/.coveragerc
 create mode 100644 src/clmcservice/MANIFEST.in
 rename {CLMCservice => src/clmcservice/clmcservice}/__init__.py (93%)
 rename {CLMCservice => src/clmcservice/clmcservice}/tests.py (95%)
 rename {CLMCservice => src/clmcservice/clmcservice}/utilities.py (100%)
 rename {CLMCservice => src/clmcservice/clmcservice}/views.py (97%)
 rename development.ini => src/clmcservice/development.ini (91%)
 rename production.ini => src/clmcservice/production.ini (90%)
 rename pytest.ini => src/clmcservice/pytest.ini (54%)
 create mode 100644 src/clmcservice/setup.py
 create mode 100644 src/clmcservice/tox.ini

diff --git a/.coveragerc b/.coveragerc
deleted file mode 100644
index a5040ab..0000000
--- a/.coveragerc
+++ /dev/null
@@ -1,3 +0,0 @@
-[run]
-source = CLMCservice
-omit = CLMCservice/tests.py
diff --git a/setup.py b/setup.py
index 08b25d9..300ceb0 100644
--- a/setup.py
+++ b/setup.py
@@ -40,45 +40,22 @@ def get_version(fname):
     return git_revision
 
 
-requires = [
-    'plaster_pastedeploy',
-    'pyramid',
-    'pyramid_debugtoolbar',
-    'waitress',
-    'influxdb',
-]
-
-tests_require = [
-    'WebTest >= 1.3.1',  # py3 compat
-    'pytest',
-    'pytest-cov',
-]
-
 setup(
-    name = "CLMCservice",
+    name = "clmctest",
     version = get_version("clmctest/_version.py"),
     author = "Michael Boniface",
     author_email = "mjb@it-innovation.soton.ac.uk",
-    description = "FLAME CLMC Service and Test Module",
-    long_description="FLAME CLMC tests",
+    description = "FLAME CLMC Test Module",
     license = "https://gitlab.it-innovation.soton.ac.uk/FLAME/flame-clmc/blob/integration/LICENSE",
-    keywords = "FLAME CLMC service tests",
-    url = 'https://gitlab.it-innovation.soton.ac.uk/FLAME/flame-clmc',
+    keywords = "FLAME CLMC tests",
+    url='https://gitlab.it-innovation.soton.ac.uk/FLAME/flame-clmc',
     packages=find_packages(exclude=["services"]),
     include_package_data=True,
-    install_requires=requires,
-    extras_require={
-        'testing': tests_require,
-    },
     package_data={'': ['_version.py', '*.yml', '*.sh', '*.json', '*.conf']},
+    long_description="FLAME CLMC tests",
     classifiers=[
         "Development Status :: Alpha",
         "Topic :: FLAME Tests",
         "License :: ",
     ],
-    entry_points={
-        'paste.app_factory': [
-            'main = CLMCservice:main',
-        ],
-    },
-)
\ No newline at end of file
+)
diff --git a/src/clmcservice/.coveragerc b/src/clmcservice/.coveragerc
new file mode 100644
index 0000000..a3edc11
--- /dev/null
+++ b/src/clmcservice/.coveragerc
@@ -0,0 +1,3 @@
+[run]
+source = clmcservice
+omit = clmcservice/tests.py
diff --git a/src/clmcservice/MANIFEST.in b/src/clmcservice/MANIFEST.in
new file mode 100644
index 0000000..eaf16db
--- /dev/null
+++ b/src/clmcservice/MANIFEST.in
@@ -0,0 +1,2 @@
+include MANIFEST.in
+recursive-include clmcservice
\ No newline at end of file
diff --git a/CLMCservice/__init__.py b/src/clmcservice/clmcservice/__init__.py
similarity index 93%
rename from CLMCservice/__init__.py
rename to src/clmcservice/clmcservice/__init__.py
index 80dfcc7..9c6d4e7 100644
--- a/CLMCservice/__init__.py
+++ b/src/clmcservice/clmcservice/__init__.py
@@ -1,6 +1,6 @@
 from pyramid.config import Configurator
 from pyramid.settings import asbool
-from CLMCservice.views import AggregatorConfig
+from clmcservice.views import AggregatorConfig
 
 
 def main(global_config, **settings):
diff --git a/CLMCservice/tests.py b/src/clmcservice/clmcservice/tests.py
similarity index 95%
rename from CLMCservice/tests.py
rename to src/clmcservice/clmcservice/tests.py
index c475fa7..e3cc202 100644
--- a/CLMCservice/tests.py
+++ b/src/clmcservice/clmcservice/tests.py
@@ -26,7 +26,7 @@ class TestAggregatorConfig(object):
         Tests the GET method for the status of the aggregator.
         """
 
-        from CLMCservice.views import AggregatorConfig  # nested import so that importing the class view is part of the test itself
+        from clmcservice.views import AggregatorConfig  # nested import so that importing the class view is part of the test itself
 
         assert not self.config.get_settings().get('aggregator_running'), "Initially aggregator is not running."
 
@@ -54,7 +54,7 @@ class TestAggregatorConfig(object):
         :param output_val: the expected output value, None for expecting an Exception
         """
 
-        from CLMCservice.views import AggregatorConfig  # nested import so that importing the class view is part of the test itself
+        from clmcservice.views import AggregatorConfig  # nested import so that importing the class view is part of the test itself
 
         assert not self.config.get_settings().get('aggregator_running'), "Initially aggregator is not running."
 
diff --git a/CLMCservice/utilities.py b/src/clmcservice/clmcservice/utilities.py
similarity index 100%
rename from CLMCservice/utilities.py
rename to src/clmcservice/clmcservice/utilities.py
diff --git a/CLMCservice/views.py b/src/clmcservice/clmcservice/views.py
similarity index 97%
rename from CLMCservice/views.py
rename to src/clmcservice/clmcservice/views.py
index 4b92523..d7c76d6 100644
--- a/CLMCservice/views.py
+++ b/src/clmcservice/clmcservice/views.py
@@ -1,7 +1,7 @@
 from pyramid.view import view_defaults
 from pyramid.httpexceptions import HTTPBadRequest
 
-from CLMCservice.utilities import str_to_bool
+from clmcservice.utilities import str_to_bool
 
 
 @view_defaults(route_name='aggregator', renderer='json')
diff --git a/development.ini b/src/clmcservice/development.ini
similarity index 91%
rename from development.ini
rename to src/clmcservice/development.ini
index 0d37eed..dc8949d 100644
--- a/development.ini
+++ b/src/clmcservice/development.ini
@@ -4,7 +4,7 @@
 ###
 
 [app:main]
-use = egg:CLMCservice
+use = egg:clmcservice
 
 pyramid.reload_templates = true
 pyramid.debug_authorization = false
@@ -32,7 +32,7 @@ listen = localhost:8080
 ###
 
 [loggers]
-keys = root, CLMCservice
+keys = root, clmcservice
 
 [handlers]
 keys = console
@@ -44,10 +44,10 @@ keys = generic
 level = INFO
 handlers = console
 
-[logger_CLMCservice]
+[logger_clmcservice]
 level = DEBUG
 handlers =
-qualname = CLMCservice
+qualname = clmcservice
 
 [handler_console]
 class = StreamHandler
diff --git a/production.ini b/src/clmcservice/production.ini
similarity index 90%
rename from production.ini
rename to src/clmcservice/production.ini
index d127f3a..b3c6439 100644
--- a/production.ini
+++ b/src/clmcservice/production.ini
@@ -4,7 +4,7 @@
 ###
 
 [app:main]
-use = egg:CLMCservice
+use = egg:clmcservice
 
 pyramid.reload_templates = false
 pyramid.debug_authorization = false
@@ -27,7 +27,7 @@ listen = *:8080
 ###
 
 [loggers]
-keys = root, CLMCservice
+keys = root, clmcservice
 
 [handlers]
 keys = console
@@ -39,10 +39,10 @@ keys = generic
 level = WARN
 handlers = console
 
-[logger_CLMCservice]
+[logger_clmcservice]
 level = WARN
 handlers =
-qualname = CLMCservice
+qualname = clmcservice
 
 [handler_console]
 class = StreamHandler
diff --git a/pytest.ini b/src/clmcservice/pytest.ini
similarity index 54%
rename from pytest.ini
rename to src/clmcservice/pytest.ini
index d30f667..2fb94a6 100644
--- a/pytest.ini
+++ b/src/clmcservice/pytest.ini
@@ -1,3 +1,3 @@
 [pytest]
-testpaths = CLMCservice
+testpaths = clmcservice
 python_files = *.py
diff --git a/src/clmcservice/setup.py b/src/clmcservice/setup.py
new file mode 100644
index 0000000..bbc0d79
--- /dev/null
+++ b/src/clmcservice/setup.py
@@ -0,0 +1,84 @@
+"""
+// © University of Southampton IT Innovation Centre, 2018
+//
+// Copyright in this software belongs to University of Southampton
+// IT Innovation Centre of Gamma House, Enterprise Road,
+// Chilworth Science Park, Southampton, SO16 7NS, UK.
+//
+// This software may not be used, sold, licensed, transferred, copied
+// or reproduced in whole or in part in any manner or form or in or
+// on any media by any person other than in accordance with the terms
+// of the Licence Agreement supplied with the software, or otherwise
+// without the prior written consent of the copyright owners.
+//
+// This software is distributed WITHOUT ANY WARRANTY, without even the
+// implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR
+// PURPOSE, except where stated in the Licence Agreement supplied with
+// the software.
+//
+//      Created By :            Michael Boniface
+//      Created Date :          25-03-2018
+//      Created for Project :   FLAME
+"""
+
+
+import os
+import os.path
+from setuptools import setup, find_packages
+
+
+def read(fname):
+    return open(os.path.join(os.path.dirname(__file__), fname)).read()
+
+
+def get_version(fname):
+    if os.path.isfile(fname):
+      git_revision = read(fname)
+    else:
+      git_revision = "SNAPSHOT"
+
+    return git_revision
+
+
+requires = [
+    'plaster_pastedeploy',
+    'pyramid',
+    'pyramid_debugtoolbar',
+    'waitress',
+    'influxdb',
+]
+
+tests_require = [
+    'WebTest >= 1.3.1',  # py3 compat
+    'pytest',
+    'pytest-cov',
+]
+
+setup(
+    name = "clmcservice",
+    version = get_version("_version.py"),
+    author = "Michael Boniface",
+    author_email = "mjb@it-innovation.soton.ac.uk",
+    description = "FLAME CLMC Service Module",
+    long_description="FLAME CLMC Service",
+    license = "https://gitlab.it-innovation.soton.ac.uk/FLAME/flame-clmc/blob/integration/LICENSE",
+    keywords = "FLAME CLMC service",
+    url = 'https://gitlab.it-innovation.soton.ac.uk/FLAME/flame-clmc',
+    packages=find_packages(),
+    include_package_data=True,
+    install_requires=requires,
+    extras_require={
+        'testing': tests_require,
+    },
+    package_data={'': ['_version.py']},
+    classifiers=[
+        "Development Status :: Alpha",
+        "Topic :: FLAME CLMC Service",
+        "License :: ",
+    ],
+    entry_points={
+        'paste.app_factory': [
+            'main = clmcservice:main',
+        ],
+    },
+)
\ No newline at end of file
diff --git a/src/clmcservice/tox.ini b/src/clmcservice/tox.ini
new file mode 100644
index 0000000..b7fe1ea
--- /dev/null
+++ b/src/clmcservice/tox.ini
@@ -0,0 +1,5 @@
+[tox]
+envlist = py36
+[testenv]
+deps=pytest
+commands=pytest
\ No newline at end of file
-- 
GitLab