diff --git a/.gitignore b/.gitignore index 6560657..62e6f5b 100644 --- a/.gitignore +++ b/.gitignore @@ -12,3 +12,4 @@ appointments/ test.py *.pyc .cache +.pytest_cache/ \ No newline at end of file diff --git a/pisa/api.py b/pisa/api.py index a218af2..c91513e 100644 --- a/pisa/api.py +++ b/pisa/api.py @@ -68,7 +68,7 @@ def get_appointment(): if appointment_in_watcher: for uuid in appointment_in_watcher: - appointment_data = watcher.appointments[uuid].to_json() + appointment_data = watcher.appointments[uuid].to_dict() appointment_data['status'] = "being_watched" response.append(appointment_data) @@ -77,7 +77,7 @@ def get_appointment(): for job in responder_jobs.values(): if job.locator == locator: - job_data = job.to_json() + job_data = job.to_dict() job_data['status'] = "dispute_responded" response.append(job_data) @@ -98,11 +98,11 @@ def get_all_appointments(): if request.remote_addr in request.host or request.remote_addr == '127.0.0.1': for uuid, appointment in watcher.appointments.items(): - watcher_appointments[uuid] = appointment.to_json() + watcher_appointments[uuid] = appointment.to_dict() if watcher.responder: for uuid, job in watcher.responder.jobs.items(): - responder_jobs[uuid] = job.to_json() + responder_jobs[uuid] = job.to_dict() response = jsonify({"watcher_appointments": watcher_appointments, "responder_jobs": responder_jobs}) diff --git a/pisa/appointment.py b/pisa/appointment.py index 39569f9..f8a442a 100644 --- a/pisa/appointment.py +++ b/pisa/appointment.py @@ -15,7 +15,7 @@ class Appointment: self.cipher = cipher self.hash_function = hash_function - def to_json(self): + def to_dict(self): appointment = {"locator": self.locator, "start_time": self.start_time, "end_time": self.end_time, "dispute_delta": self.dispute_delta, "encrypted_blob": self.encrypted_blob.data, "cipher": self.cipher, "hash_function": self.hash_function} @@ -24,5 +24,5 @@ class Appointment: # ToDO: #3-improve-appointment-structure - def serialize(self): - return json.dumps(self.to_json()) + def to_json(self): + return json.dumps(self.to_dict()) diff --git a/pisa/responder.py b/pisa/responder.py index 0b948e0..6a1457d 100644 --- a/pisa/responder.py +++ b/pisa/responder.py @@ -29,7 +29,7 @@ class Job: # can be directly got from DB self.locator = sha256(unhexlify(dispute_txid)).hexdigest() - def to_json(self): + def to_dict(self): job = {"locator": self.locator, "justice_rawtx": self.justice_rawtx, "appointment_end": self.appointment_end} return job diff --git a/pisa/watcher.py b/pisa/watcher.py index e3aa405..03743f6 100644 --- a/pisa/watcher.py +++ b/pisa/watcher.py @@ -64,7 +64,7 @@ class Watcher: logger.info("New appointment accepted.", locator=appointment.locator) if (self.signing_key is not None): - signature = self.signing_key.sign(appointment.serialize().encode('utf8')) + signature = self.signing_key.sign(appointment.to_json().encode('utf8')) else: appointment_added = False diff --git a/test/unit/test_appointment.py b/test/unit/test_appointment.py index 0caf459..b1fa6bb 100644 --- a/test/unit/test_appointment.py +++ b/test/unit/test_appointment.py @@ -1,4 +1,5 @@ from os import urandom +import json from pytest import fixture from pisa.appointment import Appointment @@ -35,13 +36,25 @@ def test_init_appointment(appointment_data): and dispute_delta == appointment.dispute_delta and hash_function == appointment.hash_function) +def test_to_dict(appointment_data): + locator, start_time, end_time, dispute_delta, encrypted_blob_data, cipher, hash_function = appointment_data + appointment = Appointment(locator, start_time, end_time, dispute_delta, encrypted_blob_data, cipher, hash_function) + + dict_appointment = appointment.to_dict() + + assert (locator == dict_appointment.get("locator") and start_time == dict_appointment.get("start_time") + and end_time == dict_appointment.get("end_time") and dispute_delta == dict_appointment.get("dispute_delta") + and cipher == dict_appointment.get("cipher") and hash_function == dict_appointment.get("hash_function") + and encrypted_blob_data == dict_appointment.get("encrypted_blob")) + + def test_to_json(appointment_data): locator, start_time, end_time, dispute_delta, encrypted_blob_data, cipher, hash_function = appointment_data appointment = Appointment(locator, start_time, end_time, dispute_delta, encrypted_blob_data, cipher, hash_function) - json_appointment = appointment.to_json() + dict_appointment = json.loads(appointment.to_json()) - assert (locator == json_appointment.get("locator") and start_time == json_appointment.get("start_time") - and end_time == json_appointment.get("end_time") and dispute_delta == json_appointment.get("dispute_delta") - and cipher == json_appointment.get("cipher") and hash_function == json_appointment.get("hash_function") - and encrypted_blob_data == json_appointment.get("encrypted_blob")) + assert (locator == dict_appointment.get("locator") and start_time == dict_appointment.get("start_time") + and end_time == dict_appointment.get("end_time") and dispute_delta == dict_appointment.get("dispute_delta") + and cipher == dict_appointment.get("cipher") and hash_function == dict_appointment.get("hash_function") + and encrypted_blob_data == dict_appointment.get("encrypted_blob"))