Skip to content

Commit

Permalink
updated tests
Browse files Browse the repository at this point in the history
  • Loading branch information
wiebsS committed Oct 18, 2020
1 parent 5e0670e commit 12ea2f0
Show file tree
Hide file tree
Showing 3 changed files with 52 additions and 58 deletions.
76 changes: 19 additions & 57 deletions chefkoch/fridge.py
Original file line number Diff line number Diff line change
Expand Up @@ -43,63 +43,13 @@ def update(self):
"""
Updates the internal item map
"""
# not sure if this is somehting we need
pass

def checkItem(self, item):
"""
WIP, sollte man auseinandernehmen und wieder vernünftig zusammenbauen
Ist diese Funktion überhaupt sinnvoll?
man bekommt ein Item und entweder wird der entsprechende Itemshelf
anegelegt und das Item darin angelegt oder oder es existiert bereits
-> prüft erstmal nicht auf Konsistenz, da mache ich eine Extra-Funktion
-> also nur, gibt es Shelf mit dem Item schon: False
-> gibt es den nicht, wird er angelegt und das Item eingeordnet: True
Problem: brauche dem entsprechend Namen
checks if the item exists and maby if the hash is still valid
"""
"""
if (item.shelf.name in self.shelfs):
# wenn es unter den Namen einen Ordner gibt
# erstmal grob
item = self.shelfs[name].items[name] # dann holen wir uns das Item
# speichern den Pfad zu der existierenden Json
itempath = self.shelfs[name].path + "/" + str(name) + ".json"
# überprüfen Dateigröße
if JSONContainer(itempath) == container:
# das ist schon das passende Item
return (item, None)
else:
# Hashkollision
# create new Item mit anderem Namen und neuem shelf
# erstmal mit Indizes dann
i = 1 # zähler
begin = self.shelfs[name].path + "/" + str(name) + "_"
end = false
# gehe die shelfs mit den Indizes durch
while (str(name) + "_" + str(i)) in self.shelfs:
if JSONContainer(begin + i + ".json") == container:
# wenn passende Item gefunden
end = true
break
else:
i += 1
name = name + "_" + i
if end:
# wir können passendes Item zurückgeben
return (self.shelfs[name].items[name], None)
else:
# wir müssen einen neuen Shelf für das Item zurückgeben
shelf = FridgeShelf(self, name)
self.shelfs[name] = shelf
return (None, self.shelfs[name])
else:
# wenn es das noch gar nicht gibt,
# wird neuer Shelf angelegt und der Namen des Shelfs zurückgegeben
shelf = FridgeShelf(self, name)
self.shelfs[name] = shelf
return (None, self.shelfs[name])
"""

def makeDirectory(self, path):
"""
Expand Down Expand Up @@ -152,8 +102,8 @@ def makeResources(self, Resources, recipe):
# name = resource.createHash()

self.shelves[element].items[name] = resource
print(element)
print(self.shelves[element].items)
# print(element)
# print(self.shelves[element].items)

def makeFlavours(self, Flavours):
"""
Expand Down Expand Up @@ -208,9 +158,10 @@ def getItem(self, name):
elif isinstance(self.shelves[name], ItemShelf):
print("this is a wip")
# prototypmäßig, erstmal die unpraktischere Variante
for x in self.shelves[name].items:
if isinstance(x, chefkoch.item.Result):
return x
if "result" in self.shelves[name].items:
return self.shelves[name].items["result"]
else:
raise Error(f"item {name} doesn't exist")
else:
print("you have a really strange shelf there")

Expand Down Expand Up @@ -249,6 +200,17 @@ def find(self, name):
else:
return None

def addItem(self, item):
# erstmal zum Hinzufügen von results, vllt später noch
# für etwas anderes geeignet
# something like checking, if it isn't there
# packen wir es mal unter result
if "result" in self.items:
print("Woowie, you alreade have a result")
else:
print("added item")
self.items["result"] = item


class FlavourShelf(Shelf):
"""
Expand Down
1 change: 1 addition & 0 deletions chefkoch/step.py
Original file line number Diff line number Diff line change
Expand Up @@ -132,6 +132,7 @@ def executeStep(self):
# das muss aber noch ordentlich in den shelf eingeordnet werden
# result_hash als namen, aber irgendwie auch doof?
result = Result(self.shelf, r)
self.shelf.addItem(result)


class StepShell(StepResource):
Expand Down
33 changes: 32 additions & 1 deletion test/test_chefkoch.py
Original file line number Diff line number Diff line change
Expand Up @@ -40,6 +40,7 @@
import chefkoch.recipe as backbone
import chefkoch.fridge as fridge
import chefkoch.container as container
import chefkoch.step as step
import numpy

# todo: Konsultiere Fabian
Expand Down Expand Up @@ -764,5 +765,35 @@ class TestStepPython(unittest.TestCase):
"""

def setUp(self):
# appending correct module-path
sys.path.append(str(path) + "/steps/")
self.fridge = fridge.Fridge(config_dict, path)
# könnte korrecte shelves anlegen
# self.fridge.makeResources(config_dict["resource"], False)
self.fridge.makeResources(config_dict["recipe"], True)
self.fridge.makeFlavours(config_dict["flavour"])
self.step = step.StepPython(self.fridge.shelves["compute_a"], {})
# missing the dependencies

def test_executeStep(self):
self.step.executeStep()
r = self.fridge.shelves["compute_a"].items["result"].result
expected = [2, 3, 4, 8, 9]
self.assertEqual(r, expected)


class TestStepShell(unittest.TestCase):
"""
Tests for checking the correct behaviour of a python-step
"""

def setUp(self):
# appending correct module-path
sys.path.append(str(path) + "/steps/")
self.fridge = fridge.Fridge(config_dict, path)
# self.fridge.makeResources(config_dict["resource"], False)
self.fridge.makeResources(config_dict["recipe"], True)
self.fridge.makeFlavours(config_dict["flavour"])
# self.step = step.StepPython(self.fridge.shelves["compute_a"], {})

def test_executeStep(self):
pass

1 comment on commit 12ea2f0

@wiebsS
Copy link
Member Author

@wiebsS wiebsS commented on 12ea2f0 Oct 18, 2020

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

  • TODO: Output of results?
  • TODO: Update Hashig consistently

Please sign in to comment.