forked from p15670423/monkey
Common: Delete IJSONSerializable.py
This interface is no longer used (replaced by pydantic objects)
This commit is contained in:
parent
b7e6435ced
commit
895de8c720
|
@ -1,15 +0,0 @@
|
||||||
from __future__ import annotations
|
|
||||||
|
|
||||||
from abc import ABC, abstractmethod
|
|
||||||
|
|
||||||
|
|
||||||
class IJSONSerializable(ABC):
|
|
||||||
@classmethod
|
|
||||||
@abstractmethod
|
|
||||||
def from_json(cls, json_string: str) -> IJSONSerializable:
|
|
||||||
pass
|
|
||||||
|
|
||||||
@classmethod
|
|
||||||
@abstractmethod
|
|
||||||
def to_json(cls, class_object: IJSONSerializable) -> str:
|
|
||||||
pass
|
|
|
@ -1,2 +1 @@
|
||||||
from .timer import Timer
|
from .timer import Timer
|
||||||
from .IJSONSerializable import IJSONSerializable
|
|
||||||
|
|
|
@ -1,14 +1,12 @@
|
||||||
from datetime import datetime
|
from datetime import datetime
|
||||||
from enum import Enum
|
from enum import Enum
|
||||||
from json import JSONEncoder, dumps, loads
|
from json import JSONEncoder, dumps
|
||||||
from typing import Any
|
from typing import Any
|
||||||
|
|
||||||
import bson
|
import bson
|
||||||
from flask import make_response
|
from flask import make_response
|
||||||
from pydantic import BaseModel
|
from pydantic import BaseModel
|
||||||
|
|
||||||
from common.utils import IJSONSerializable
|
|
||||||
|
|
||||||
|
|
||||||
class APIEncoder(JSONEncoder):
|
class APIEncoder(JSONEncoder):
|
||||||
def default(self, value: Any) -> Any:
|
def default(self, value: Any) -> Any:
|
||||||
|
@ -20,8 +18,6 @@ class APIEncoder(JSONEncoder):
|
||||||
return str(value)
|
return str(value)
|
||||||
if issubclass(type(value), Enum):
|
if issubclass(type(value), Enum):
|
||||||
return value.name
|
return value.name
|
||||||
if issubclass(type(value), IJSONSerializable):
|
|
||||||
return loads(value.__class__.to_json(value))
|
|
||||||
if issubclass(type(value), set):
|
if issubclass(type(value), set):
|
||||||
return list(value)
|
return list(value)
|
||||||
if issubclass(type(value), BaseModel):
|
if issubclass(type(value), BaseModel):
|
||||||
|
|
|
@ -5,7 +5,6 @@ from enum import Enum
|
||||||
|
|
||||||
import bson
|
import bson
|
||||||
|
|
||||||
from common.utils import IJSONSerializable
|
|
||||||
from monkey_island.cc.services.representations import APIEncoder
|
from monkey_island.cc.services.representations import APIEncoder
|
||||||
|
|
||||||
|
|
||||||
|
@ -73,22 +72,3 @@ def test_api_encoder_tuple():
|
||||||
bogus_tuple = [{"my_tuple": (bogus_object1, bogus_object2, "string")}]
|
bogus_tuple = [{"my_tuple": (bogus_object1, bogus_object2, "string")}]
|
||||||
expected_tuple = [{"my_tuple": ({"a": 1}, {"a": 2}, "string")}]
|
expected_tuple = [{"my_tuple": ({"a": 1}, {"a": 2}, "string")}]
|
||||||
assert json.dumps(expected_tuple) == json.dumps(bogus_tuple, cls=APIEncoder)
|
assert json.dumps(expected_tuple) == json.dumps(bogus_tuple, cls=APIEncoder)
|
||||||
|
|
||||||
|
|
||||||
class BogusSerializableClass(IJSONSerializable):
|
|
||||||
def __init__(self, a):
|
|
||||||
self.a = a
|
|
||||||
|
|
||||||
@classmethod
|
|
||||||
def to_json(cls, class_object: IJSONSerializable) -> str:
|
|
||||||
return json.dumps({"wacky": class_object.a})
|
|
||||||
|
|
||||||
@classmethod
|
|
||||||
def from_json(cls, json_string: str) -> IJSONSerializable:
|
|
||||||
pass
|
|
||||||
|
|
||||||
|
|
||||||
def test_api_encoder_json_serializable():
|
|
||||||
bogus_data = {"target": [BogusSerializableClass("macky")]}
|
|
||||||
expected_result = {"target": [{"wacky": "macky"}]}
|
|
||||||
assert json.dumps(expected_result) == json.dumps(bogus_data, cls=APIEncoder)
|
|
||||||
|
|
|
@ -316,10 +316,6 @@ EXPLOITED
|
||||||
CC
|
CC
|
||||||
CC_TUNNEL
|
CC_TUNNEL
|
||||||
|
|
||||||
# TODO Remove with #2217
|
|
||||||
IJSONSerializable
|
|
||||||
from_json
|
|
||||||
|
|
||||||
IslandEventTopic.AGENT_CONNECTED
|
IslandEventTopic.AGENT_CONNECTED
|
||||||
IslandEventTopic.CLEAR_SIMULATION_DATA
|
IslandEventTopic.CLEAR_SIMULATION_DATA
|
||||||
IslandEventTopic.RESET_AGENT_CONFIGURATION
|
IslandEventTopic.RESET_AGENT_CONFIGURATION
|
||||||
|
|
Loading…
Reference in New Issue