diff --git a/src/caosadvancedtools/cfood.py b/src/caosadvancedtools/cfood.py index 149fea52401e54ed6b3dd448c992c7bbc7a5fd91..6c2a1e26c7f28e7db31c36927c0998ccf44819e9 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 4a4aa51f14a2e470d26e92f1ec227c95250003af..48b1249f06073e18ef9fbda6a8f7ab7fac768e93 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()