diff --git a/acto/input/value_with_schema.py b/acto/input/value_with_schema.py index d1388cf402..3152aa9b5a 100644 --- a/acto/input/value_with_schema.py +++ b/acto/input/value_with_schema.py @@ -145,10 +145,10 @@ def mutate(self, p_delete=0.05, p_replace=0.1): self.store[child_key].mutate() def update(self, value): - if value is None: - self.store = None if isinstance(value, enum.Enum): value = value.value + if value is None: + self.store = None if isinstance(value, dict): self.store = {} for k, v in value.items(): @@ -270,10 +270,10 @@ def mutate(self, p_delete=0.05, p_replace=0.1): self.store[index].mutate() def update(self, value): - if value is None: - self.store = None if isinstance(value, enum.Enum): value = value.value + if value is None: + self.store = None elif isinstance(value, list): self.store = [] for i in value: @@ -428,6 +428,8 @@ def get_value_by_path(self, path: list): def create_path(self, path: list): """Ensures the path exists""" + if len(path) == 0: + return # XXX: Complicated, no use case yet, let's implement later raise NotImplementedError @@ -438,6 +440,9 @@ def set_value_by_path(self, value, path): else: self.store.set_value_by_path(value, path) + def value(self): + return self.store + class ValueWithBasicSchema(ValueWithSchema): """Value with schema attached for Number/Integer, Bool, String""" @@ -475,11 +480,11 @@ def mutate(self, p_delete=0.05, p_replace=0.1): self.update(self.schema.gen()) def update(self, value): + if isinstance(value, enum.Enum): + value = value.value if value is None: self.store = None else: - if isinstance(value, enum.Enum): - value = value.value self.store = value def get_value_by_path(self, path: list):