Skip to content

Commit 9dd7812

Browse files
committed
Merge pull request #48 from FishHooks/master
Fixed several issues
2 parents 867fae0 + 5fa65f1 commit 9dd7812

File tree

12 files changed

+89
-122
lines changed

12 files changed

+89
-122
lines changed

test/agent_test.py

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -66,7 +66,7 @@ def test_InitEmptyAccount(self):
6666
self.assertEqual(agent.mbox, 'mailto:test@test.com')
6767
self.assertEqual(agent.mbox_sha1sum, 'test')
6868
self.assertEqual(agent.openid, 'test')
69-
self.assertIsNone(agent.account)
69+
self.assertIsInstance(agent.account, AgentAccount)
7070

7171
def test_InitAnonAccount(self):
7272
agent = Agent(name='test', mbox='mailto:test@test.com', mbox_sha1sum='test', openid='test', account={"name": "test", "home_page": "test.com"})

test/attachment_test.py

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -74,7 +74,7 @@ def test_AttachmentInitFileURL(self):
7474
def test_AttachmentInitEmptyDisplay(self):
7575
attachment = Attachment(usage_type='test', display={}, description=None, content_type='test', length=1, sha2='test', fileurl='test.com/test.pdf')
7676
self.assertEqual(attachment.usage_type, 'test')
77-
self.assertIsNone(attachment.display)
77+
self.assertIsInstance(attachment.display, LanguageMap)
7878
self.assertEqual(attachment.content_type, 'test')
7979
self.assertEqual(attachment.length, 1)
8080
self.assertEqual(attachment.sha2, 'test')
@@ -83,7 +83,7 @@ def test_AttachmentInitEmptyDisplay(self):
8383
def test_AttachmentInitEmptyDescription(self):
8484
attachment = Attachment(usage_type='test', display=None, description={}, content_type='test', length=1, sha2='test', fileurl='test.com/test.pdf')
8585
self.assertEqual(attachment.usage_type, 'test')
86-
self.assertIsNone(attachment.description)
86+
self.assertIsInstance(attachment.description, LanguageMap)
8787
self.assertEqual(attachment.content_type, 'test')
8888
self.assertEqual(attachment.length, 1)
8989
self.assertEqual(attachment.sha2, 'test')

test/context_test.py

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -44,7 +44,7 @@ def test_InitAll(self):
4444
revision='revision',
4545
platform='platform',
4646
language='en-US',
47-
statement=StatementRef(id='statementRef'),
47+
statement=StatementRef(id='016699c6-d600-48a7-96ab-86187498f16f'),
4848
extensions=Extensions({'extensions': 'extend!'})
4949
)
5050
self.ctxVerificationHelper(ctx)

test/statement_test.py

Lines changed: 12 additions & 8 deletions
Original file line numberDiff line numberDiff line change
@@ -93,7 +93,7 @@ def test_InitStored(self):
9393
def test_InitEmptyActor(self):
9494
statement = Statement(actor={})
9595
self.assertIsNone(statement.id)
96-
self.assertIsNone(statement.actor)
96+
self.assertIsInstance(statement.actor, Agent)
9797
self.assertIsNone(statement.verb)
9898
self.assertIsNone(statement.object)
9999
self.assertIsNone(statement.timestamp)
@@ -104,7 +104,7 @@ def test_InitEmptyVerb(self):
104104
statement = Statement(verb={})
105105
self.assertIsNone(statement.id)
106106
self.assertIsNone(statement.actor)
107-
self.assertIsNone(statement.verb)
107+
self.assertIsInstance(statement.verb, Verb)
108108
self.assertIsNone(statement.object)
109109
self.assertIsNone(statement.timestamp)
110110
self.assertIsNone(statement.stored)
@@ -115,7 +115,7 @@ def test_InitEmptyObject(self):
115115
self.assertIsNone(statement.id)
116116
self.assertIsNone(statement.actor)
117117
self.assertIsNone(statement.verb)
118-
self.assertIsNone(statement.object)
118+
self.assertIsInstance(statement.object, Activity)
119119
self.assertIsNone(statement.timestamp)
120120
self.assertIsNone(statement.stored)
121121
self.assertIsNone(statement.authority)
@@ -128,7 +128,7 @@ def test_InitEmptyAuthority(self):
128128
self.assertIsNone(statement.object)
129129
self.assertIsNone(statement.timestamp)
130130
self.assertIsNone(statement.stored)
131-
self.assertIsNone(statement.authority)
131+
self.assertIsInstance(statement.authority, Agent)
132132

133133
def test_InitEmptyResult(self):
134134
statement = Statement(result={})
@@ -139,7 +139,7 @@ def test_InitEmptyResult(self):
139139
self.assertIsNone(statement.timestamp)
140140
self.assertIsNone(statement.stored)
141141
self.assertIsNone(statement.authority)
142-
self.assertIsNone(statement.result)
142+
self.assertIsInstance(statement.result, Result)
143143

144144
def test_InitEmptyContext(self):
145145
statement = Statement(context={})
@@ -150,7 +150,7 @@ def test_InitEmptyContext(self):
150150
self.assertIsNone(statement.timestamp)
151151
self.assertIsNone(statement.stored)
152152
self.assertIsNone(statement.authority)
153-
self.assertIsNone(statement.context)
153+
self.assertIsInstance(statement.context, Context)
154154

155155
def test_InitEmptyAttachments(self):
156156
statement = Statement(attachments=[])
@@ -411,7 +411,7 @@ def test_ToJSON(self):
411411

412412
def test_ToJSONEmpty(self):
413413
statement = Statement()
414-
self.assertEqual(statement.to_json(), '{"attachments": []}')
414+
self.assertEqual(statement.to_json(), '{}')
415415

416416
def test_FromJSONToJSON(self):
417417
json_str = '{"id":"016699c6-d600-48a7-96ab-86187498f16f", "actor": {"name":"test"}, "verb":{"id":"test"}, "object":{"object_type":"Agent", "name":"test"}, "authority":{"name":"test"}, "context":{"registration":"016699c6-d600-48a7-96ab-86187498f16f"}, "attachments":[{"usage_type":"test"}]}'
@@ -426,6 +426,10 @@ def test_FromJSONToJSON(self):
426426
self.attachmentVerificationHelper(k)
427427
self.assertEqual(statement.to_json(), '{"attachments": [{"usageType": "test"}], "object": {"name": "test", "objectType": "Agent"}, "authority": {"name": "test", "objectType": "Agent"}, "verb": {"id": "test"}, "actor": {"name": "test", "objectType": "Agent"}, "context": {"registration": "016699c6-d600-48a7-96ab-86187498f16f"}, "id": "016699c6-d600-48a7-96ab-86187498f16f"}')
428428

429+
def test_ExceptionInvalidUUID(self):
430+
with self.assertRaises(ValueError):
431+
statement = Statement(id='badtest')
432+
429433
def agentVerificationHelper(self, value):
430434
self.assertIsInstance(value, Agent)
431435
self.assertEqual(value.name, 'test')
@@ -454,7 +458,7 @@ def attachmentVerificationHelper(self, value):
454458

455459
def substatementVerificationHelper(self, value):
456460
self.assertIsInstance(value, Substatement)
457-
self.assertEqual(value.object_type, 'Substatement')
461+
self.assertEqual(value.object_type, 'SubStatement')
458462

459463
def statementrefVerificationHelper(self, value):
460464
self.assertIsInstance(value, StatementRef)

test/statementref_test.py

Lines changed: 19 additions & 14 deletions
Original file line numberDiff line numberDiff line change
@@ -13,6 +13,7 @@
1313
# limitations under the License.
1414

1515
import unittest
16+
import uuid
1617
if __name__ == '__main__':
1718
from main import setup_tincan_path
1819
setup_tincan_path()
@@ -25,39 +26,43 @@ def test_InitObjectType(self):
2526
self.assertEqual(statementref.object_type, 'StatementRef')
2627

2728
def test_InitId(self):
28-
statementref = StatementRef(id='test')
29-
self.assertEqual(statementref.id, 'test')
29+
statementref = StatementRef(id='016699c6-d600-48a7-96ab-86187498f16f')
30+
self.assertEqual(statementref.id, uuid.UUID('016699c6-d600-48a7-96ab-86187498f16f'))
3031

3132
def test_InitUnpack(self):
32-
obj = {'object_type':'StatementRef', 'id':'test'}
33+
obj = {'object_type':'StatementRef', 'id':'016699c6-d600-48a7-96ab-86187498f16f'}
3334
statementref = StatementRef(**obj)
3435
self.assertEqual(statementref.object_type, 'StatementRef')
35-
self.assertEqual(statementref.id, 'test')
36+
self.assertEqual(statementref.id, uuid.UUID('016699c6-d600-48a7-96ab-86187498f16f'))
3637

3738
def test_FromJSON(self):
38-
json_str = '{"object_type":"StatementRef", "id":"test"}'
39+
json_str = '{"object_type":"StatementRef", "id":"016699c6-d600-48a7-96ab-86187498f16f"}'
3940
statementref = StatementRef.from_json(json_str)
4041
self.assertEqual(statementref.object_type, 'StatementRef')
41-
self.assertEqual(statementref.id, 'test')
42+
self.assertEqual(statementref.id, uuid.UUID('016699c6-d600-48a7-96ab-86187498f16f'))
4243

4344
def test_ToJSON(self):
44-
statementref = StatementRef(object_type='StatementRef', id='test')
45-
self.assertEqual(statementref.to_json(), '{"id": "test", "objectType": "StatementRef"}')
45+
statementref = StatementRef(object_type='StatementRef', id='016699c6-d600-48a7-96ab-86187498f16f')
46+
self.assertEqual(statementref.to_json(), '{"id": "016699c6-d600-48a7-96ab-86187498f16f", "objectType": "StatementRef"}')
4647

4748
def test_ToJSONNoObjectType(self):
48-
statementref = StatementRef(id='test')
49-
self.assertEqual(statementref.to_json(), '{"id": "test", "objectType": "StatementRef"}')
49+
statementref = StatementRef(id='016699c6-d600-48a7-96ab-86187498f16f')
50+
self.assertEqual(statementref.to_json(), '{"id": "016699c6-d600-48a7-96ab-86187498f16f", "objectType": "StatementRef"}')
5051

5152
def test_FromJSONToJSON(self):
52-
json_str = '{"object_type":"StatementRef", "id":"test"}'
53+
json_str = '{"object_type":"StatementRef", "id":"016699c6-d600-48a7-96ab-86187498f16f"}'
5354
statementref = StatementRef.from_json(json_str)
5455
self.assertEqual(statementref.object_type, 'StatementRef')
55-
self.assertEqual(statementref.id, 'test')
56-
self.assertEqual(statementref.to_json(), '{"id": "test", "objectType": "StatementRef"}')
56+
self.assertEqual(statementref.id, uuid.UUID('016699c6-d600-48a7-96ab-86187498f16f'))
57+
self.assertEqual(statementref.to_json(), '{"id": "016699c6-d600-48a7-96ab-86187498f16f", "objectType": "StatementRef"}')
5758

5859
def test_ToJSONEmpty(self):
5960
statementref = StatementRef()
60-
self.assertEqual(statementref.to_json(), '{}')
61+
self.assertEqual(statementref.to_json(), '{"objectType": "StatementRef"}')
62+
63+
def test_ExceptionInvalidUUID(self):
64+
with self.assertRaises(ValueError):
65+
statementref = StatementRef(id='badtest')
6166

6267
if __name__ == '__main__':
6368
suite = unittest.TestLoader().loadTestsFromTestCase(StatementRefTest)

test/substatement_test.py

Lines changed: 11 additions & 11 deletions
Original file line numberDiff line numberDiff line change
@@ -50,8 +50,8 @@ def test_InitDifferentNamingObject(self):
5050
self.agentVerificationHelper(substatement.object)
5151

5252
def test_InitObjectType(self):
53-
substatement = Substatement(object_type="Substatement")
54-
self.assertEqual(substatement.object_type, "Substatement")
53+
substatement = Substatement(object_type="SubStatement")
54+
self.assertEqual(substatement.object_type, "SubStatement")
5555

5656
def test_InitAgentActor(self):
5757
substatement = Substatement(actor=Agent(name='test'))
@@ -78,37 +78,37 @@ def test_InitActivityObject(self):
7878
self.activityVerificationHelper(substatement.object)
7979

8080
def test_InitUnpack(self):
81-
obj = {'object_type':'Substatement', 'actor':{'name':'test'}, 'verb':{'id':'test'}, 'object':{'id':'test'}}
81+
obj = {'object_type':'SubStatement', 'actor':{'name':'test'}, 'verb':{'id':'test'}, 'object':{'id':'test'}}
8282
substatement = Substatement(**obj)
83-
self.assertEqual(substatement.object_type, 'Substatement')
83+
self.assertEqual(substatement.object_type, 'SubStatement')
8484
self.agentVerificationHelper(substatement.actor)
8585
self.verbVerificationHelper(substatement.verb)
8686
self.activityVerificationHelper(substatement.object)
8787

8888
def test_FromJSON(self):
89-
json_str = '{"object_type":"Substatement", "actor":{"name":"test"}, "verb":{"id":"test"}, "object":{"id":"test"}}'
89+
json_str = '{"object_type":"SubStatement", "actor":{"name":"test"}, "verb":{"id":"test"}, "object":{"id":"test"}}'
9090
substatement = Substatement.from_json(json_str)
91-
self.assertEqual(substatement.object_type, 'Substatement')
91+
self.assertEqual(substatement.object_type, 'SubStatement')
9292
self.agentVerificationHelper(substatement.actor)
9393
self.verbVerificationHelper(substatement.verb)
9494
self.activityVerificationHelper(substatement.object)
9595

9696
def test_ToJSONEmpty(self):
9797
substatement = Substatement()
98-
self.assertEqual(substatement.to_json(), '{}')
98+
self.assertEqual(substatement.to_json(), '{"objectType": "SubStatement"}')
9999

100100
def test_ToJSON(self):
101101
substatement = Substatement(object_type='Substatement', actor=Agent(name='test'), verb=Verb(id='test'), object=Activity(id='test'))
102-
self.assertEqual(substatement.to_json(), '{"verb": {"id": "test"}, "object": {"id": "test"}, "actor": {"name": "test", "objectType": "Agent"}, "objectType": "Substatement"}')
102+
self.assertEqual(substatement.to_json(), '{"verb": {"id": "test"}, "object": {"id": "test"}, "actor": {"name": "test", "objectType": "Agent"}, "objectType": "SubStatement"}')
103103

104104
def test_FromJSONToJSON(self):
105-
json_str = '{"object_type":"Substatement", "actor":{"name":"test"}, "verb":{"id":"test"}, "object":{"id":"test"}}'
105+
json_str = '{"object_type":"SubStatement", "actor":{"name":"test"}, "verb":{"id":"test"}, "object":{"id":"test"}}'
106106
substatement = Substatement.from_json(json_str)
107-
self.assertEqual(substatement.object_type, 'Substatement')
107+
self.assertEqual(substatement.object_type, 'SubStatement')
108108
self.agentVerificationHelper(substatement.actor)
109109
self.verbVerificationHelper(substatement.verb)
110110
self.activityVerificationHelper(substatement.object)
111-
self.assertEqual(substatement.to_json(), '{"verb": {"id": "test"}, "object": {"id": "test"}, "actor": {"name": "test", "objectType": "Agent"}, "objectType": "Substatement"}')
111+
self.assertEqual(substatement.to_json(), '{"verb": {"id": "test"}, "object": {"id": "test"}, "actor": {"name": "test", "objectType": "Agent"}, "objectType": "SubStatement"}')
112112

113113
def agentVerificationHelper(self, value):
114114
self.assertIsInstance(value, Agent)

tincan/agent.py

Lines changed: 1 addition & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -160,13 +160,8 @@ def account(self):
160160

161161
@account.setter
162162
def account(self, value):
163-
if value is not None:
164-
if not value:
165-
value = None
166-
elif not isinstance(value, AgentAccount):
163+
if value is not None and not isinstance(value, AgentAccount):
167164
value = AgentAccount(value)
168-
elif len(vars(value)) == 0:
169-
value = None
170165
self._account = value
171166

172167
@account.deleter

tincan/attachment.py

Lines changed: 2 additions & 12 deletions
Original file line numberDiff line numberDiff line change
@@ -169,13 +169,8 @@ def display(self):
169169

170170
@display.setter
171171
def display(self, value):
172-
if value is not None:
173-
if not value:
174-
value = None
175-
elif not isinstance(value, LanguageMap):
172+
if value is not None and not isinstance(value, LanguageMap):
176173
value = LanguageMap(value)
177-
elif len(value) == 0:
178-
value = None
179174
self._display = value
180175

181176
@display.deleter
@@ -195,13 +190,8 @@ def description(self):
195190

196191
@description.setter
197192
def description(self, value):
198-
if value is not None:
199-
if not value:
200-
value = None
201-
elif not isinstance(value, LanguageMap):
193+
if value is not None and not isinstance(value, LanguageMap):
202194
value = LanguageMap(value)
203-
elif len(value) == 0:
204-
value = None
205195
self._description = value
206196

207197
@description.deleter

tincan/group.py

Lines changed: 1 addition & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -46,8 +46,7 @@ def addmember(self, value):
4646
4747
"""
4848

49-
if value is not None:
50-
if not isinstance(value, Agent):
49+
if value is not None and not isinstance(value, Agent):
5150
value = Agent(value)
5251

5352
self._member.append(value)

0 commit comments

Comments
 (0)