Skip to content

Commit

Permalink
improve tests
Browse files Browse the repository at this point in the history
  • Loading branch information
zmezei committed Jul 5, 2023
1 parent 9860db3 commit 83ffcec
Showing 1 changed file with 39 additions and 34 deletions.
73 changes: 39 additions & 34 deletions tests/test_field_descr.py
Original file line number Diff line number Diff line change
Expand Up @@ -4,77 +4,82 @@
from uagents import Model, Protocol


protocol_no_descriptions = Protocol(name="field descriptions", version="1.1.1")
protocol_with_descriptions = Protocol(name="field descriptions", version="1.1.1")
protocol_no_descr = Protocol(name="test", version="1.1.1")
protocol_with_descr = Protocol(name="test", version="1.1.1")


def create_message_no_descr():
class Message(Model):
message: str

return Message


def create_message_with_descr():
class Message(Model):
message: str = Field(description="message field description")

return Message


def get_digests(protocol: Protocol):
model_digest = next(iter(protocol.models))
proto_digest = protocol.digest
return (model_digest, proto_digest)


class TestFieldDescr(unittest.TestCase):
def setUp(self) -> None:
self.protocol_no_descr = protocol_no_descriptions
self.protocol_with_descr = protocol_with_descriptions
self.protocol_no_descr = protocol_no_descr
self.protocol_with_descr = protocol_with_descr
return super().setUp()

def test_field_description(self):
class Message(Model):
message: str = Field(description="message field description")
message_with_descr = create_message_with_descr()

Model.build_schema_digest(Message)
Model.build_schema_digest(message_with_descr)

message_field_info = Message.__fields__["message"].field_info
message_field_info = message_with_descr.__fields__["message"].field_info
self.assertIsNotNone(message_field_info)
self.assertIsNotNone(message_field_info.description)
self.assertEqual(message_field_info.description, "message field description")

def test_model_digest(self):
class Message(Model):
message: str

model_digest_no_descr = Model.build_schema_digest(Message)

class Message(Model):
message: str = Field(description="message field description")

model_digest_with_descr = Model.build_schema_digest(Message)
model_digest_no_descr = Model.build_schema_digest(create_message_no_descr())
model_digest_with_descr = Model.build_schema_digest(create_message_with_descr())

self.assertEqual(model_digest_no_descr, model_digest_with_descr)

def test_protocol(self):
class Message(Model):
message: str

@self.protocol_no_descr.on_query(Message)
@self.protocol_no_descr.on_query(create_message_no_descr())
def _(_ctx, _sender, _msg):
pass

self.assertEqual(len(self.protocol_no_descr.models), 1)
self.assertNotIn(
"description",
self.protocol_no_descr.manifest()["models"][0]["schema"]["properties"][
"message"
],
)
(model_digest_no_descr, proto_digest_no_descr) = get_digests(
self.protocol_no_descr
)

proto_digest_no_descr = self.protocol_no_descr.digest

class Message(Model):
message: str = Field(description="message field description")

@self.protocol_with_descr.on_query(Message)
@self.protocol_with_descr.on_query(create_message_with_descr())
def _(_ctx, _sender, _msg):
pass

self.assertEqual(len(self.protocol_with_descr.models), 1)
self.assertEqual(
self.protocol_with_descr.manifest()["models"][0]["schema"]["properties"][
"message"
]["description"],
"message field description",
)
(model_digest_with_descr, proto_digest_with_descr) = get_digests(
self.protocol_with_descr
)

proto_digest_with_descr = self.protocol_with_descr.digest

self.assertEqual(len(self.protocol_no_descr.models), 1)
self.assertEqual(len(self.protocol_with_descr.models), 1)
model_digest_no_descr = next(iter(self.protocol_no_descr.models))
model_digest_with_descr = next(iter(self.protocol_with_descr.models))
self.assertEqual(model_digest_no_descr, model_digest_with_descr)
self.assertEqual(proto_digest_no_descr, proto_digest_with_descr)

Expand Down

0 comments on commit 83ffcec

Please sign in to comment.