From d1e15d64e9625d217a461fbbdff7698c5cb2edb8 Mon Sep 17 00:00:00 2001
From: =?UTF-8?q?Henrik=20tom=20W=C3=B6rden?= <henrik@trineo.org>
Date: Thu, 17 Jan 2019 16:52:00 +0100
Subject: [PATCH] ENH: renamed class; split test

---
 src/caosadvancedtools/cfood.py | 32 +++++++++++++++++++-------------
 unittests/test_cfood.py        | 19 ++++++++++++++-----
 2 files changed, 33 insertions(+), 18 deletions(-)

diff --git a/src/caosadvancedtools/cfood.py b/src/caosadvancedtools/cfood.py
index 149fea52..6c2a1e26 100644
--- a/src/caosadvancedtools/cfood.py
+++ b/src/caosadvancedtools/cfood.py
@@ -10,7 +10,7 @@ from datetime import datetime
 from caosdb.exceptions import TransactionError
 
 
-class CFood(object):
+class AbstractCFood(object):
     def __init__(self, pattern):
         self.pattern = re.compile(pattern)
 
@@ -30,19 +30,10 @@ class CFood(object):
         self.update_identifiables(entities, filename, match)
 
     def create_identifiables(self, filename, match):
-        entities = {}
-        entities["exp"] = db.Record()
-        #import IPython
-        #IPython.embed()
-        entities["exp"].add_parent(name="Experiment")
-        entities["exp"].add_property(name="species", value=match.group)
-
-        return entities
+        raise NotImplementedError()
 
     def update_identifiables(self, entities, filename, match):
-        entities["exp"].add_property(name="date",
-                                     value=datetime.today().isoformat())
-        db.Container().extend(entities.values).update()
+        raise NotImplementedError()
 
     @staticmethod
     def find_existing(entity):
@@ -57,6 +48,22 @@ class CFood(object):
             r = None
         return r
 
+class ExampleCFood(AbstractCFood):
+    def create_identifiables(self, filename, match):
+        entities = {}
+        entities["exp"] = db.Record()
+        #import IPython
+        #IPython.embed()
+        entities["exp"].add_parent(name="Experiment")
+        entities["exp"].add_property(name="species", value=match.group)
+
+        return entities
+
+    def update_identifiables(self, entities, filename, match):
+        entities["exp"].add_property(name="date",
+                                     value=datetime.today().isoformat())
+        db.Container().extend(entities.values).update()
+
 def get_parser():
     parser = argparse.ArgumentParser(description=__doc__,
                                      formatter_class=RawTextHelpFormatter)
@@ -67,4 +74,3 @@ def get_parser():
 if __name__ == "__main__":
     parser = get_parser()
     args = parser.parse_args()
-
diff --git a/unittests/test_cfood.py b/unittests/test_cfood.py
index 4a4aa51f..48b1249f 100644
--- a/unittests/test_cfood.py
+++ b/unittests/test_cfood.py
@@ -2,8 +2,7 @@ import unittest
 from tempfile import NamedTemporaryFile
 
 import caosdb as db
-from caosadvancedtools.cfood import CFood
-
+from caosadvancedtools.cfood import AbstractCFood
 
 
 class CFoodTest(unittest.TestCase):
@@ -11,8 +10,18 @@ class CFoodTest(unittest.TestCase):
         self.exp = db.Record()
         self.exp.add_parent(name="Experiment")
         self.exp.add_property(name="species", value="microunicorn")
-        pass
 
     def test_check_existence(self):
-        assert CFood.find_existing(self.exp) is None
-        pass
+        assert AbstractCFood.find_existing(self.exp) is None
+
+class CFoodTestExist(CFoodTest):
+    def setUp(self):
+        super().setUp()
+        self.exp.insert()
+
+    def test_check_existence(self):
+        res = AbstractCFood.find_existing(self.exp)
+        assert  res.id == self.exp.id
+
+    def tearDown(self):
+        self.exp.delete()
-- 
GitLab