Skip to content

Commit 2c35c3f

Browse files
committed
Fix value with anyof schema
Signed-off-by: Tyler Gu <[email protected]>
1 parent 757ffb3 commit 2c35c3f

File tree

1 file changed

+11
-6
lines changed

1 file changed

+11
-6
lines changed

acto/input/value_with_schema.py

Lines changed: 11 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -145,10 +145,10 @@ def mutate(self, p_delete=0.05, p_replace=0.1):
145145
self.store[child_key].mutate()
146146

147147
def update(self, value):
148-
if value is None:
149-
self.store = None
150148
if isinstance(value, enum.Enum):
151149
value = value.value
150+
if value is None:
151+
self.store = None
152152
if isinstance(value, dict):
153153
self.store = {}
154154
for k, v in value.items():
@@ -270,10 +270,10 @@ def mutate(self, p_delete=0.05, p_replace=0.1):
270270
self.store[index].mutate()
271271

272272
def update(self, value):
273-
if value is None:
274-
self.store = None
275273
if isinstance(value, enum.Enum):
276274
value = value.value
275+
if value is None:
276+
self.store = None
277277
elif isinstance(value, list):
278278
self.store = []
279279
for i in value:
@@ -428,6 +428,8 @@ def get_value_by_path(self, path: list):
428428

429429
def create_path(self, path: list):
430430
"""Ensures the path exists"""
431+
if len(path) == 0:
432+
return
431433

432434
# XXX: Complicated, no use case yet, let's implement later
433435
raise NotImplementedError
@@ -438,6 +440,9 @@ def set_value_by_path(self, value, path):
438440
else:
439441
self.store.set_value_by_path(value, path)
440442

443+
def value(self):
444+
return self.store
445+
441446

442447
class ValueWithBasicSchema(ValueWithSchema):
443448
"""Value with schema attached for Number/Integer, Bool, String"""
@@ -475,11 +480,11 @@ def mutate(self, p_delete=0.05, p_replace=0.1):
475480
self.update(self.schema.gen())
476481

477482
def update(self, value):
483+
if isinstance(value, enum.Enum):
484+
value = value.value
478485
if value is None:
479486
self.store = None
480487
else:
481-
if isinstance(value, enum.Enum):
482-
value = value.value
483488
self.store = value
484489

485490
def get_value_by_path(self, path: list):

0 commit comments

Comments
 (0)