Skip to content

Commit 3c6a091

Browse files
committed
[Matthew D'Alonzo] initial commit
1 parent a658fab commit 3c6a091

33 files changed

+770
-350
lines changed

README.adoc

Lines changed: 7 additions & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -13,21 +13,21 @@ image:https://raw.githubusercontent.com/eclipse-uprotocol/uprotocol-spec/main/up
1313

1414
== Getting Started
1515

16-
=== Importing the sdk
16+
=== Importing the Library
1717

18-
Setup SDK local repository and install
18+
Setup Library local repository and install
1919
[source]
2020
----
21-
$ git clone https://github.com/eclipse-uprotocol/uprotocol-python.git
22-
$ cd uprotocol-python
21+
$ git clone https://github.com/eclipse-uprotocol/up-python.git
22+
$ cd up-python
2323
$ pip install .
2424
----
25-
*This will install the uprotocol-python, making its classes and modules available for import in your python code.*
25+
*This will install the up-python, making its classes and modules available for import in your python code.*
2626

2727

28-
=== Using The Sdk
28+
=== Using The Library
2929

30-
The SDK is broken up into different packages that are described in <<sdk-packages>> below. Each package contains a README.adoc file that describes the purpose of the package and how to use it. Packages are organized into the following directories:
30+
The Library is broken up into different packages that are described in <<sdk-packages>> below. Each package contains a README.adoc file that describes the purpose of the package and how to use it. Packages are organized into the following directories:
3131

3232
.Package Folders
3333
[#pkg-folders,width=100%,cols="20%,80%",options="header"]

setup.cfg

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -14,6 +14,7 @@ packages = find:
1414
zip_safe = False
1515
install_requires =
1616
cloudevents
17+
multipledispatch
1718
; googleapis-common-protos>=1.56.4
1819

1920

tests/test_cloudevent/test_datamodel/test_ucloudevent.py

Lines changed: 54 additions & 54 deletions
Original file line numberDiff line numberDiff line change
@@ -77,81 +77,81 @@ class TestUCloudEvent(unittest.TestCase):
7777
def test_extract_source_from_cloudevent(self):
7878
cloud_event = build_cloud_event_for_test()
7979
source = UCloudEvent.get_source(cloud_event)
80-
self.assertEquals("/body.access//door.front_left#Door", source)
80+
self.assertEqual("/body.access//door.front_left#Door", source)
8181

8282
def test_extract_sink_from_cloudevent_when_sink_exists(self):
8383
sink = "//bo.cloud/petapp/1/rpc.response"
8484
cloud_event = build_cloud_event_for_test()
8585
cloud_event.__setitem__("sink", sink)
86-
self.assertEquals(sink, UCloudEvent.get_sink(cloud_event))
86+
self.assertEqual(sink, UCloudEvent.get_sink(cloud_event))
8787

8888
def test_extract_sink_from_cloudevent_when_sink_does_not_exist(self):
8989
cloud_event = build_cloud_event_for_test()
90-
self.assertEquals(None, UCloudEvent.get_sink(cloud_event))
90+
self.assertEqual(None, UCloudEvent.get_sink(cloud_event))
9191

9292
def test_extract_requestId_from_cloudevent_when_requestId_exists(self):
9393
cloud_event = build_cloud_event_for_test()
9494
cloud_event.__setitem__("reqid", "somereqid")
95-
self.assertEquals("somereqid", UCloudEvent.get_request_id(cloud_event))
95+
self.assertEqual("somereqid", UCloudEvent.get_request_id(cloud_event))
9696

9797
def test_extract_requestId_from_cloudevent_when_requestId_does_not_exist(self):
9898
cloud_event = build_cloud_event_for_test()
99-
self.assertEquals(None, UCloudEvent.get_request_id(cloud_event))
99+
self.assertEqual(None, UCloudEvent.get_request_id(cloud_event))
100100

101101
def test_extract_requestId_from_cloudevent_when_requestId_value_is_null(self):
102102
cloud_event = build_cloud_event_for_test()
103103
cloud_event.__setitem__("reqid", None)
104-
self.assertEquals(None, UCloudEvent.get_request_id(cloud_event))
104+
self.assertEqual(None, UCloudEvent.get_request_id(cloud_event))
105105

106106
def test_extract_hash_from_cloudevent_when_hash_exists(self):
107107
cloud_event = build_cloud_event_for_test()
108-
self.assertEquals("somehash", UCloudEvent.get_hash(cloud_event))
108+
self.assertEqual("somehash", UCloudEvent.get_hash(cloud_event))
109109

110110
def test_extract_hash_from_cloudevent_when_hash_does_not_exist(self):
111111
cloud_event = build_cloud_event_for_test()
112112
cloud_event.__delitem__("hash")
113-
self.assertEquals(None, UCloudEvent.get_hash(cloud_event))
113+
self.assertEqual(None, UCloudEvent.get_hash(cloud_event))
114114

115115
def test_extract_priority_from_cloudevent_when_priority_exists(self):
116116
cloud_event = build_cloud_event_for_test()
117-
self.assertEquals(UPriority.Name(UPriority.UPRIORITY_CS1), UCloudEvent.get_priority(cloud_event))
117+
self.assertEqual(UPriority.Name(UPriority.UPRIORITY_CS1), UCloudEvent.get_priority(cloud_event))
118118

119119
def test_extract_priority_from_cloudevent_when_priority_does_not_exist(self):
120120
cloud_event = build_cloud_event_for_test()
121121
cloud_event.__delitem__("priority")
122-
self.assertEquals(None, UCloudEvent.get_priority(cloud_event))
122+
self.assertEqual(None, UCloudEvent.get_priority(cloud_event))
123123

124124
def test_extract_ttl_from_cloudevent_when_ttl_exists(self):
125125
cloud_event = build_cloud_event_for_test()
126-
self.assertEquals(3, UCloudEvent.get_ttl(cloud_event))
126+
self.assertEqual(3, UCloudEvent.get_ttl(cloud_event))
127127

128128
def test_extract_ttl_from_cloudevent_when_ttl_does_not_exists(self):
129129
cloud_event = build_cloud_event_for_test()
130130
cloud_event.__delitem__("ttl")
131-
self.assertEquals(None, UCloudEvent.get_ttl(cloud_event))
131+
self.assertEqual(None, UCloudEvent.get_ttl(cloud_event))
132132

133133
def test_extract_token_from_cloudevent_when_token_exists(self):
134134
cloud_event = build_cloud_event_for_test()
135-
self.assertEquals("someOAuthToken", UCloudEvent.get_token(cloud_event))
135+
self.assertEqual("someOAuthToken", UCloudEvent.get_token(cloud_event))
136136

137137
def test_extract_token_from_cloudevent_when_token_does_not_exists(self):
138138
cloud_event = build_cloud_event_for_test()
139139
cloud_event.__delitem__("token")
140-
self.assertEquals(None, UCloudEvent.get_token(cloud_event))
140+
self.assertEqual(None, UCloudEvent.get_token(cloud_event))
141141

142142
def test_cloudevent_has_platform_error_when_platform_error_exists(self):
143143
cloud_event = build_cloud_event_for_test()
144144
cloud_event.__setitem__("commstatus", UCode.ABORTED)
145-
self.assertEquals(10, UCloudEvent.get_communication_status(cloud_event))
145+
self.assertEqual(10, UCloudEvent.get_communication_status(cloud_event))
146146

147147
def test_cloudevent_has_platform_error_when_platform_error_does_not_exist(self):
148148
cloud_event = build_cloud_event_for_test()
149-
self.assertEquals(UCode.OK, UCloudEvent.get_communication_status(cloud_event))
149+
self.assertEqual(UCode.OK, UCloudEvent.get_communication_status(cloud_event))
150150

151151
def test_extract_platform_error_from_cloudevent_when_platform_error_exists_in_wrong_format(self):
152152
cloud_event = build_cloud_event_for_test()
153153
cloud_event.__setitem__("commstatus", "boom")
154-
self.assertEquals(UCode.OK, UCloudEvent.get_communication_status(cloud_event))
154+
self.assertEqual(UCode.OK, UCloudEvent.get_communication_status(cloud_event))
155155

156156
def test_cloudevent_is_not_expired_cd_when_no_ttl_configured(self):
157157
cloud_event = build_cloud_event_for_test()
@@ -210,13 +210,13 @@ def test_from_message_with_valid_message(self):
210210
self.assertIsNotNone(u_message)
211211
cloud_event1 = UCloudEvent.fromMessage(u_message)
212212
self.assertIsNotNone(cloud_event1)
213-
self.assertEquals(cloud_event, cloud_event1)
214-
self.assertEquals(cloud_event.get_data(), cloud_event1.get_data())
215-
self.assertEquals(UCloudEvent.get_source(cloud_event), UCloudEvent.get_source(cloud_event1))
216-
self.assertEquals(UCloudEvent.get_specversion(cloud_event), UCloudEvent.get_specversion(cloud_event1))
217-
self.assertEquals(UCloudEvent.get_priority(cloud_event), UCloudEvent.get_priority(cloud_event1))
218-
self.assertEquals(UCloudEvent.get_id(cloud_event), UCloudEvent.get_id(cloud_event1))
219-
self.assertEquals(UCloudEvent.get_type(cloud_event), UCloudEvent.get_type(cloud_event1))
213+
self.assertEqual(cloud_event, cloud_event1)
214+
self.assertEqual(cloud_event.get_data(), cloud_event1.get_data())
215+
self.assertEqual(UCloudEvent.get_source(cloud_event), UCloudEvent.get_source(cloud_event1))
216+
self.assertEqual(UCloudEvent.get_specversion(cloud_event), UCloudEvent.get_specversion(cloud_event1))
217+
self.assertEqual(UCloudEvent.get_priority(cloud_event), UCloudEvent.get_priority(cloud_event1))
218+
self.assertEqual(UCloudEvent.get_id(cloud_event), UCloudEvent.get_id(cloud_event1))
219+
self.assertEqual(UCloudEvent.get_type(cloud_event), UCloudEvent.get_type(cloud_event1))
220220

221221
def test_to_from_message_from_request_cloudevent(self):
222222
# additional attributes
@@ -229,26 +229,26 @@ def test_to_from_message_from_request_cloudevent(self):
229229
u_cloud_event_attributes)
230230
result = UCloudEvent.toMessage(cloud_event)
231231
self.assertIsNotNone(result)
232-
self.assertEquals(UCloudEvent.get_ttl(cloud_event), result.attributes.ttl)
233-
self.assertEquals(UCloudEvent.get_token(cloud_event), result.attributes.token)
234-
self.assertEquals(UCloudEvent.get_sink(cloud_event),
232+
self.assertEqual(UCloudEvent.get_ttl(cloud_event), result.attributes.ttl)
233+
self.assertEqual(UCloudEvent.get_token(cloud_event), result.attributes.token)
234+
self.assertEqual(UCloudEvent.get_sink(cloud_event),
235235
LongUriSerializer().serialize(result.attributes.sink))
236-
self.assertEquals(UCloudEvent.get_payload(cloud_event).SerializeToString(), result.payload.value)
237-
self.assertEquals(UCloudEvent.get_source(cloud_event),
238-
LongUriSerializer().serialize(result.source))
239-
self.assertEquals(UCloudEvent.get_priority(cloud_event),
236+
self.assertEqual(UCloudEvent.get_payload(cloud_event).SerializeToString(), result.payload.value)
237+
self.assertEqual(UCloudEvent.get_source(cloud_event),
238+
LongUriSerializer().serialize(result.attributes.source))
239+
self.assertEqual(UCloudEvent.get_priority(cloud_event),
240240
UPriority.Name(result.attributes.priority))
241241

242242
cloud_event1 = UCloudEvent.fromMessage(result)
243-
self.assertEquals(cloud_event, cloud_event1)
244-
self.assertEquals(cloud_event.get_data(), cloud_event1.get_data())
245-
self.assertEquals(UCloudEvent.get_source(cloud_event), UCloudEvent.get_source(cloud_event1))
246-
self.assertEquals(UCloudEvent.get_sink(cloud_event), UCloudEvent.get_sink(cloud_event1))
247-
self.assertEquals(UCloudEvent.get_specversion(cloud_event), UCloudEvent.get_specversion(cloud_event1))
248-
self.assertEquals(UCloudEvent.get_priority(cloud_event), UCloudEvent.get_priority(cloud_event1))
249-
self.assertEquals(UCloudEvent.get_id(cloud_event), UCloudEvent.get_id(cloud_event1))
250-
self.assertEquals(UCloudEvent.get_type(cloud_event), UCloudEvent.get_type(cloud_event1))
251-
self.assertEquals(UCloudEvent.get_request_id(cloud_event), UCloudEvent.get_request_id(cloud_event1))
243+
self.assertEqual(cloud_event, cloud_event1)
244+
self.assertEqual(cloud_event.get_data(), cloud_event1.get_data())
245+
self.assertEqual(UCloudEvent.get_source(cloud_event), UCloudEvent.get_source(cloud_event1))
246+
self.assertEqual(UCloudEvent.get_sink(cloud_event), UCloudEvent.get_sink(cloud_event1))
247+
self.assertEqual(UCloudEvent.get_specversion(cloud_event), UCloudEvent.get_specversion(cloud_event1))
248+
self.assertEqual(UCloudEvent.get_priority(cloud_event), UCloudEvent.get_priority(cloud_event1))
249+
self.assertEqual(UCloudEvent.get_id(cloud_event), UCloudEvent.get_id(cloud_event1))
250+
self.assertEqual(UCloudEvent.get_type(cloud_event), UCloudEvent.get_type(cloud_event1))
251+
self.assertEqual(UCloudEvent.get_request_id(cloud_event), UCloudEvent.get_request_id(cloud_event1))
252252

253253
def test_to_from_message_from_request_cloudevent_without_attributes(self):
254254
# additional attributes
@@ -261,21 +261,21 @@ def test_to_from_message_from_request_cloudevent_without_attributes(self):
261261
result = UCloudEvent.toMessage(cloud_event)
262262
self.assertIsNotNone(result)
263263
self.assertFalse(result.attributes.HasField('ttl'))
264-
self.assertEquals(UCloudEvent.get_sink(cloud_event),
264+
self.assertEqual(UCloudEvent.get_sink(cloud_event),
265265
LongUriSerializer().serialize(result.attributes.sink))
266-
self.assertEquals(UCloudEvent.get_payload(cloud_event).SerializeToString(), result.payload.value)
267-
self.assertEquals(UCloudEvent.get_source(cloud_event), LongUriSerializer().serialize(result.source))
268-
self.assertEquals(result.attributes.priority, 0)
266+
self.assertEqual(UCloudEvent.get_payload(cloud_event).SerializeToString(), result.payload.value)
267+
self.assertEqual(UCloudEvent.get_source(cloud_event), LongUriSerializer().serialize(result.attributes.source))
268+
self.assertEqual(result.attributes.priority, 0)
269269

270270
cloud_event1 = UCloudEvent.fromMessage(result)
271-
self.assertEquals(cloud_event.get_data(), cloud_event1.get_data())
272-
self.assertEquals(UCloudEvent.get_source(cloud_event),UCloudEvent.get_source(cloud_event1))
273-
self.assertEquals(UCloudEvent.get_sink(cloud_event),UCloudEvent.get_sink(cloud_event1))
274-
self.assertEquals(UCloudEvent.get_specversion(cloud_event),UCloudEvent.get_specversion(cloud_event1))
275-
self.assertEquals(UCloudEvent.get_priority(cloud_event),UCloudEvent.get_priority(cloud_event1))
276-
self.assertEquals(UCloudEvent.get_id(cloud_event),UCloudEvent.get_id(cloud_event1))
277-
self.assertEquals(UCloudEvent.get_type(cloud_event),UCloudEvent.get_type(cloud_event1))
278-
self.assertEquals(UCloudEvent.get_request_id(cloud_event),UCloudEvent.get_request_id(cloud_event1))
271+
self.assertEqual(cloud_event.get_data(), cloud_event1.get_data())
272+
self.assertEqual(UCloudEvent.get_source(cloud_event),UCloudEvent.get_source(cloud_event1))
273+
self.assertEqual(UCloudEvent.get_sink(cloud_event),UCloudEvent.get_sink(cloud_event1))
274+
self.assertEqual(UCloudEvent.get_specversion(cloud_event),UCloudEvent.get_specversion(cloud_event1))
275+
self.assertEqual(UCloudEvent.get_priority(cloud_event),UCloudEvent.get_priority(cloud_event1))
276+
self.assertEqual(UCloudEvent.get_id(cloud_event),UCloudEvent.get_id(cloud_event1))
277+
self.assertEqual(UCloudEvent.get_type(cloud_event),UCloudEvent.get_type(cloud_event1))
278+
self.assertEqual(UCloudEvent.get_request_id(cloud_event),UCloudEvent.get_request_id(cloud_event1))
279279

280280
def test_to_from_message_from_UCP_cloudevent(self):
281281
# additional attributes
@@ -289,7 +289,7 @@ def test_to_from_message_from_UCP_cloudevent(self):
289289

290290
result = UCloudEvent.toMessage(cloud_event)
291291
self.assertIsNotNone(result)
292-
self.assertEquals(UPriority.UPRIORITY_CS4,result.attributes.priority)
292+
self.assertEqual(UPriority.UPRIORITY_CS4,result.attributes.priority)
293293
cloud_event1 = UCloudEvent.fromMessage(result)
294-
self.assertEquals(UCloudEvent.get_priority(cloud_event1),UPriority.Name(result.attributes.priority))
294+
self.assertEqual(UCloudEvent.get_priority(cloud_event1),UPriority.Name(result.attributes.priority))
295295

tests/test_rpc/test_rpc.py

Lines changed: 8 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -32,15 +32,21 @@
3232
from uprotocol.proto.cloudevents_pb2 import CloudEvent
3333
from uprotocol.proto.uattributes_pb2 import UPriority
3434
from uprotocol.proto.upayload_pb2 import UPayload, UPayloadFormat
35-
from uprotocol.proto.uri_pb2 import UUri, UEntity
35+
from uprotocol.proto.uri_pb2 import UUri, UEntity, UAuthority
3636
from uprotocol.proto.ustatus_pb2 import UStatus, UCode
3737
from uprotocol.rpc.rpcclient import RpcClient
3838
from uprotocol.rpc.rpcmapper import RpcMapper
3939
from uprotocol.rpc.rpcresult import RpcResult
4040
from uprotocol.transport.builder.uattributesbuilder import UAttributesBuilder
4141
from uprotocol.uri.serializer.longuriserializer import LongUriSerializer
42+
from uprotocol.uri.factory.uresource_builder import UResourceBuilder
4243

4344

45+
def build_source():
46+
return UUri(authority=UAuthority(name="vcu.someVin.veh.ultifi.gm.com"),
47+
entity=UEntity(name="petapp.ultifi.gm.com", version_major=1),
48+
resource=UResourceBuilder.for_rpc_request(None))
49+
4450
def build_cloud_event():
4551
return CloudEvent(spec_version="1.0", source="https://example.com", id="HARTLEY IS THE BEST")
4652

@@ -56,7 +62,7 @@ def build_topic():
5662

5763

5864
def build_uattributes():
59-
return UAttributesBuilder.request(UPriority.UPRIORITY_CS4, UUri(entity=UEntity(name="hartley")), 1000).build()
65+
return UAttributesBuilder.request(build_source(), UUri(entity=UEntity(name="hartley")), UPriority.UPRIORITY_CS4, 1000).build()
6066

6167

6268
class ReturnsNumber3(RpcClient):

tests/test_transport/test_builder/test_uattributesbuilder.py

Lines changed: 16 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -29,9 +29,14 @@
2929
from uprotocol.transport.builder.uattributesbuilder import UAttributesBuilder
3030
from uprotocol.proto.uattributes_pb2 import UPriority, UMessageType
3131
from uprotocol.proto.uri_pb2 import UUri, UAuthority, UEntity
32-
from uprotocol.uri.builder.uresource_builder import UResourceBuilder
32+
from uprotocol.uri.factory.uresource_builder import UResourceBuilder
3333
from uprotocol.uuid.factory.uuidfactory import Factories
3434

35+
def build_source():
36+
return UUri(authority=UAuthority(name="vcu.someVin.veh.ultifi.gm.com"),
37+
entity=UEntity(name="petapp.ultifi.gm.com", version_major=1),
38+
resource=UResourceBuilder.for_rpc_request(None))
39+
3540

3641
def build_sink():
3742
return UUri(authority=UAuthority(name="vcu.someVin.veh.ultifi.gm.com"),
@@ -46,16 +51,18 @@ def get_uuid():
4651
class TestUAttributesBuilder(unittest.TestCase):
4752

4853
def test_publish(self):
49-
builder = UAttributesBuilder.publish(UPriority.UPRIORITY_CS1)
54+
source = build_source()
55+
builder = UAttributesBuilder.publish(source, UPriority.UPRIORITY_CS1)
5056
self.assertIsNotNone(builder)
5157
attributes = builder.build()
5258
self.assertIsNotNone(attributes)
5359
self.assertEqual(UMessageType.UMESSAGE_TYPE_PUBLISH, attributes.type)
5460
self.assertEqual(UPriority.UPRIORITY_CS1, attributes.priority)
5561

5662
def test_notification(self):
63+
source = build_source()
5764
sink = build_sink()
58-
builder = UAttributesBuilder.notification(UPriority.UPRIORITY_CS1, sink)
65+
builder = UAttributesBuilder.notification(source, sink, UPriority.UPRIORITY_CS1)
5966
self.assertIsNotNone(builder)
6067
attributes = builder.build()
6168
self.assertIsNotNone(attributes)
@@ -64,9 +71,10 @@ def test_notification(self):
6471
self.assertEqual(sink, attributes.sink)
6572

6673
def test_request(self):
74+
source = build_source()
6775
sink = build_sink()
6876
ttl = 1000
69-
builder = UAttributesBuilder.request(UPriority.UPRIORITY_CS4, sink, ttl)
77+
builder = UAttributesBuilder.request(source, sink, UPriority.UPRIORITY_CS4, ttl)
7078
self.assertIsNotNone(builder)
7179
attributes = builder.build()
7280
self.assertIsNotNone(attributes)
@@ -76,9 +84,10 @@ def test_request(self):
7684
self.assertEqual(ttl, attributes.ttl)
7785

7886
def test_response(self):
87+
source = build_source()
7988
sink = build_sink()
8089
req_id = get_uuid()
81-
builder = UAttributesBuilder.response(UPriority.UPRIORITY_CS6, sink, req_id)
90+
builder = UAttributesBuilder.response(source, sink, UPriority.UPRIORITY_CS6, req_id)
8291
self.assertIsNotNone(builder)
8392
attributes = builder.build()
8493
self.assertIsNotNone(attributes)
@@ -89,14 +98,15 @@ def test_response(self):
8998

9099
def test_build(self):
91100
req_id = get_uuid()
92-
builder = UAttributesBuilder.publish(UPriority.UPRIORITY_CS1).withTtl(1000).withToken("test_token").withSink(
101+
builder = UAttributesBuilder.publish(build_source(), UPriority.UPRIORITY_CS1).withTtl(1000).withToken("test_token").withSink(
93102
build_sink()).withPermissionLevel(2).withCommStatus(1).withReqId(req_id)
94103
attributes = builder.build()
95104
self.assertIsNotNone(attributes)
96105
self.assertEqual(UMessageType.UMESSAGE_TYPE_PUBLISH, attributes.type)
97106
self.assertEqual(UPriority.UPRIORITY_CS1, attributes.priority)
98107
self.assertEqual(1000, attributes.ttl)
99108
self.assertEqual("test_token", attributes.token)
109+
self.assertEqual(build_source(), attributes.source)
100110
self.assertEqual(build_sink(), attributes.sink)
101111
self.assertEqual(2, attributes.permission_level)
102112
self.assertEqual(1, attributes.commstatus)

0 commit comments

Comments
 (0)