forked from cheahjs/palworld-save-tools
-
Notifications
You must be signed in to change notification settings - Fork 0
/
Copy pathtest_rawdata.py
66 lines (59 loc) · 47.5 KB
/
test_rawdata.py
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
import base64
import json
import unittest
from lib.noindent import CustomEncoder
from lib.rawdata import *
class TestRawData(unittest.TestCase):
def test_player(self):
test_data = base64.b64decode(
"DgAAAFNhdmVQYXJhbWV0ZXIADwAAAFN0cnVjdFByb3BlcnR5AG8QAAAAAAAAJAAAAFBhbEluZGl2aWR1YWxDaGFyYWN0ZXJTYXZlUGFyYW1ldGVyAAAAAAAAAAAAAAAAAAAAAAAABgAAAExldmVsAAwAAABJbnRQcm9wZXJ0eQAEAAAAAAAAAAAeAAAABAAAAEV4cAAMAAAASW50UHJvcGVydHkABAAAAAAAAAAAmHgEAAkAAABOaWNrTmFtZQAMAAAAU3RyUHJvcGVydHkAEAAAAAAAAAAADAAAAHplcm9ac2hhZG93AAMAAABIUAAPAAAAU3RydWN0UHJvcGVydHkANgAAAAAAAAANAAAARml4ZWRQb2ludDY0AAAAAAAAAAAAAAAAAAAAAAAABgAAAFZhbHVlAA4AAABJbnQ2NFByb3BlcnR5AAgAAAAAAAAAALCmFwAAAAAABQAAAE5vbmUADAAAAEZ1bGxTdG9tYWNoAA4AAABGbG9hdFByb3BlcnR5AAQAAAAAAAAAAB7mtUIJAAAASXNQbGF5ZXIADQAAAEJvb2xQcm9wZXJ0eQAAAAAAAAAAAAEABgAAAE1heEhQAA8AAABTdHJ1Y3RQcm9wZXJ0eQA2AAAAAAAAAA0AAABGaXhlZFBvaW50NjQAAAAAAAAAAAAAAAAAAAAAAAAGAAAAVmFsdWUADgAAAEludDY0UHJvcGVydHkACAAAAAAAAAAAsKYXAAAAAAAFAAAATm9uZQAIAAAAU3VwcG9ydAAMAAAASW50UHJvcGVydHkABAAAAAAAAAAAZAAAAAsAAABDcmFmdFNwZWVkAAwAAABJbnRQcm9wZXJ0eQAEAAAAAAAAAAD0AQAADAAAAENyYWZ0U3BlZWRzAA4AAABBcnJheVByb3BlcnR5AB4IAAAAAAAADwAAAFN0cnVjdFByb3BlcnR5AAANAAAADAAAAENyYWZ0U3BlZWRzAA8AAABTdHJ1Y3RQcm9wZXJ0eQDDBwAAAAAAABcAAABQYWxXb3JrU3VpdGFiaWxpdHlJbmZvAAAAAAAAAAAAAAAAAAAAAAAAEAAAAFdvcmtTdWl0YWJpbGl0eQANAAAARW51bVByb3BlcnR5ACMAAAAAAAAAFAAAAEVQYWxXb3JrU3VpdGFiaWxpdHkAAB8AAABFUGFsV29ya1N1aXRhYmlsaXR5OjpFbWl0RmxhbWUABQAAAFJhbmsADAAAAEludFByb3BlcnR5AAQAAAAAAAAAAAUAAAAFAAAATm9uZQAQAAAAV29ya1N1aXRhYmlsaXR5AA0AAABFbnVtUHJvcGVydHkAIgAAAAAAAAAUAAAARVBhbFdvcmtTdWl0YWJpbGl0eQAAHgAAAEVQYWxXb3JrU3VpdGFiaWxpdHk6OldhdGVyaW5nAAUAAABSYW5rAAwAAABJbnRQcm9wZXJ0eQAEAAAAAAAAAAAFAAAABQAAAE5vbmUAEAAAAFdvcmtTdWl0YWJpbGl0eQANAAAARW51bVByb3BlcnR5ACEAAAAAAAAAFAAAAEVQYWxXb3JrU3VpdGFiaWxpdHkAAB0AAABFUGFsV29ya1N1aXRhYmlsaXR5OjpTZWVkaW5nAAUAAABSYW5rAAwAAABJbnRQcm9wZXJ0eQAEAAAAAAAAAAAFAAAABQAAAE5vbmUAEAAAAFdvcmtTdWl0YWJpbGl0eQANAAAARW51bVByb3BlcnR5AC0AAAAAAAAAFAAAAEVQYWxXb3JrU3VpdGFiaWxpdHkAACkAAABFUGFsV29ya1N1aXRhYmlsaXR5OjpHZW5lcmF0ZUVsZWN0cmljaXR5AAUAAABSYW5rAAwAAABJbnRQcm9wZXJ0eQAEAAAAAAAAAAAFAAAABQAAAE5vbmUAEAAAAFdvcmtTdWl0YWJpbGl0eQANAAAARW51bVByb3BlcnR5ACMAAAAAAAAAFAAAAEVQYWxXb3JrU3VpdGFiaWxpdHkAAB8AAABFUGFsV29ya1N1aXRhYmlsaXR5OjpIYW5kY3JhZnQABQAAAFJhbmsADAAAAEludFByb3BlcnR5AAQAAAAAAAAAAAUAAAAFAAAATm9uZQAQAAAAV29ya1N1aXRhYmlsaXR5AA0AAABFbnVtUHJvcGVydHkAJAAAAAAAAAAUAAAARVBhbFdvcmtTdWl0YWJpbGl0eQAAIAAAAEVQYWxXb3JrU3VpdGFiaWxpdHk6OkNvbGxlY3Rpb24ABQAAAFJhbmsADAAAAEludFByb3BlcnR5AAQAAAAAAAAAAAUAAAAFAAAATm9uZQAQAAAAV29ya1N1aXRhYmlsaXR5AA0AAABFbnVtUHJvcGVydHkAIgAAAAAAAAAUAAAARVBhbFdvcmtTdWl0YWJpbGl0eQAAHgAAAEVQYWxXb3JrU3VpdGFiaWxpdHk6OkRlZm9yZXN0AAUAAABSYW5rAAwAAABJbnRQcm9wZXJ0eQAEAAAAAAAAAAAFAAAABQAAAE5vbmUAEAAAAFdvcmtTdWl0YWJpbGl0eQANAAAARW51bVByb3BlcnR5ACAAAAAAAAAAFAAAAEVQYWxXb3JrU3VpdGFiaWxpdHkAABwAAABFUGFsV29ya1N1aXRhYmlsaXR5OjpNaW5pbmcABQAAAFJhbmsADAAAAEludFByb3BlcnR5AAQAAAAAAAAAAAUAAAAFAAAATm9uZQAQAAAAV29ya1N1aXRhYmlsaXR5AA0AAABFbnVtUHJvcGVydHkAJwAAAAAAAAAUAAAARVBhbFdvcmtTdWl0YWJpbGl0eQAAIwAAAEVQYWxXb3JrU3VpdGFiaWxpdHk6Ok9pbEV4dHJhY3Rpb24ABQAAAFJhbmsADAAAAEludFByb3BlcnR5AAQAAAAAAAAAAAUAAAAFAAAATm9uZQAQAAAAV29ya1N1aXRhYmlsaXR5AA0AAABFbnVtUHJvcGVydHkAKQAAAAAAAAAUAAAARVBhbFdvcmtTdWl0YWJpbGl0eQAAJQAAAEVQYWxXb3JrU3VpdGFiaWxpdHk6OlByb2R1Y3RNZWRpY2luZQAFAAAAUmFuawAMAAAASW50UHJvcGVydHkABAAAAAAAAAAABQAAAAUAAABOb25lABAAAABXb3JrU3VpdGFiaWxpdHkADQAAAEVudW1Qcm9wZXJ0eQAeAAAAAAAAABQAAABFUGFsV29ya1N1aXRhYmlsaXR5AAAaAAAARVBhbFdvcmtTdWl0YWJpbGl0eTo6Q29vbAAFAAAAUmFuawAMAAAASW50UHJvcGVydHkABAAAAAAAAAAABQAAAAUAAABOb25lABAAAABXb3JrU3VpdGFiaWxpdHkADQAAAEVudW1Qcm9wZXJ0eQAjAAAAAAAAABQAAABFUGFsV29ya1N1aXRhYmlsaXR5AAAfAAAARVBhbFdvcmtTdWl0YWJpbGl0eTo6VHJhbnNwb3J0AAUAAABSYW5rAAwAAABJbnRQcm9wZXJ0eQAEAAAAAAAAAAAFAAAABQAAAE5vbmUAEAAAAFdvcmtTdWl0YWJpbGl0eQANAAAARW51bVByb3BlcnR5ACUAAAAAAAAAFAAAAEVQYWxXb3JrU3VpdGFiaWxpdHkAACEAAABFUGFsV29ya1N1aXRhYmlsaXR5OjpNb25zdGVyRmFybQAFAAAAUmFuawAMAAAASW50UHJvcGVydHkABAAAAAAAAAAABQAAAAUAAABOb25lAAkAAABTaGllbGRIUAAPAAAAU3RydWN0UHJvcGVydHkANgAAAAAAAAANAAAARml4ZWRQb2ludDY0AAAAAAAAAAAAAAAAAAAAAAAABgAAAFZhbHVlAA4AAABJbnQ2NFByb3BlcnR5AAgAAAAAAAAAAGA9CAAAAAAABQAAAE5vbmUADAAAAFNoaWVsZE1heEhQAA8AAABTdHJ1Y3RQcm9wZXJ0eQA2AAAAAAAAAA0AAABGaXhlZFBvaW50NjQAAAAAAAAAAAAAAAAAAAAAAAAGAAAAVmFsdWUADgAAAEludDY0UHJvcGVydHkACAAAAAAAAAAAYD0IAAAAAAAFAAAATm9uZQAGAAAATWF4U1AADwAAAFN0cnVjdFByb3BlcnR5ADYAAAAAAAAADQAAAEZpeGVkUG9pbnQ2NAAAAAAAAAAAAAAAAAAAAAAAAAYAAABWYWx1ZQAOAAAASW50NjRQcm9wZXJ0eQAIAAAAAAAAAADgIgIAAAAAAAUAAABOb25lAAwAAABTYW5pdHlWYWx1ZQAOAAAARmxvYXRQcm9wZXJ0eQAEAAAAAAAAAAD2qIFCEwAAAEdvdFN0YXR1c1BvaW50TGlzdAAOAAAAQXJyYXlQcm9wZXJ0eQDnAgAAAAAAAA8AAABTdHJ1Y3RQcm9wZXJ0eQAABgAAABMAAABHb3RTdGF0dXNQb2ludExpc3QADwAAAFN0cnVjdFByb3BlcnR5AIoCAAAAAAAAEgAAAFBhbEdvdFN0YXR1c1BvaW50AAAAAAAAAAAAAAAAAAAAAAAACwAAAFN0YXR1c05hbWUADQAAAE5hbWVQcm9wZXJ0eQAOAAAAAAAAAAD7////AGcnWUgAUAAAAAwAAABTdGF0dXNQb2ludAAMAAAASW50UHJvcGVydHkABAAAAAAAAAAABwAAAAUAAABOb25lAAsAAABTdGF0dXNOYW1lAA0AAABOYW1lUHJvcGVydHkADgAAAAAAAAAA+////wBnJ1lTAFAAAAAMAAAAU3RhdHVzUG9pbnQADAAAAEludFByb3BlcnR5AAQAAAAAAAAAAAQAAAAFAAAATm9uZQALAAAAU3RhdHVzTmFtZQANAAAATmFtZVByb3BlcnR5AAwAAAAAAAAAAPz///87ZYNkm1IAAAwAAABTdGF0dXNQb2ludAAMAAAASW50UHJvcGVydHkABAAAAAAAAAAABgAAAAUAAABOb25lAAsAAABTdGF0dXNOYW1lAA0AAABOYW1lUHJvcGVydHkADgAAAAAAAAAA+////0BiAWPNkc+RAAAMAAAAU3RhdHVzUG9pbnQADAAAAEludFByb3BlcnR5AAQAAAAAAAAAAAQAAAAFAAAATm9uZQALAAAAU3RhdHVzTmFtZQANAAAATmFtZVByb3BlcnR5AAwAAAAAAAAAAPz///9VY3Jzh3MAAAwAAABTdGF0dXNQb2ludAAMAAAASW50UHJvcGVydHkABAAAAAAAAAAACAAAAAUAAABOb25lAAsAAABTdGF0dXNOYW1lAA0AAABOYW1lUHJvcGVydHkADgAAAAAAAAAA+////1xPbWkfkKZeAAAMAAAAU3RhdHVzUG9pbnQADAAAAEludFByb3BlcnR5AAQAAAAAAAAAAAgAAAAFAAAATm9uZQATAAAATGFzdEp1bXBlZExvY2F0aW9uAA8AAABTdHJ1Y3RQcm9wZXJ0eQAYAAAAAAAAAAcAAABWZWN0b3IAAAAAAAAAAAAAAAAAAAAAAABtnAULmYUVwb97b3tfdQ9BGlIKa6J0sUAVAAAARm9vZFdpdGhTdGF0dXNFZmZlY3QADQAAAE5hbWVQcm9wZXJ0eQAMAAAAAAAAAAAIAAAAUGFuY2FrZQAbAAAAVGllbXJfRm9vZFdpdGhTdGF0dXNFZmZlY3QADAAAAEludFByb3BlcnR5AAQAAAAAAAAAAG0AAAAIAAAAVm9pY2VJRAAMAAAASW50UHJvcGVydHkABAAAAAAAAAAABAAAAAUAAABOb25lAAUAAABOb25lAAAAAAC9P2jP+0TEQa5Z1tHYa16G"
)
properties = decode_character_data_bytes(test_data)
json_str = json.dumps(
properties, cls=CustomEncoder, ensure_ascii=False, indent=2
)
reparsed_properties = json.loads(json_str)
reconverted_data = encode_character_data_bytes(reparsed_properties)
self.assertEqual(test_data, reconverted_data)
def test_character(self):
test_data = base64.b64decode(
"DgAAAFNhdmVQYXJhbWV0ZXIADwAAAFN0cnVjdFByb3BlcnR5ABAUAAAAAAAAJAAAAFBhbEluZGl2aWR1YWxDaGFyYWN0ZXJTYXZlUGFyYW1ldGVyAAAAAAAAAAAAAAAAAAAAAAAADAAAAENoYXJhY3RlcklEAA0AAABOYW1lUHJvcGVydHkADAAAAAAAAAAACAAAAFBpbmtDYXQABwAAAEdlbmRlcgANAAAARW51bVByb3BlcnR5ABsAAAAAAAAADwAAAEVQYWxHZW5kZXJUeXBlAAAXAAAARVBhbEdlbmRlclR5cGU6OkZlbWFsZQAGAAAATGV2ZWwADAAAAEludFByb3BlcnR5AAQAAAAAAAAAAAcAAAAEAAAARXhwAAwAAABJbnRQcm9wZXJ0eQAEAAAAAAAAAABZAQAACgAAAEVxdWlwV2F6YQAOAAAAQXJyYXlQcm9wZXJ0eQBFAAAAAAAAAA0AAABFbnVtUHJvcGVydHkAAAIAAAAkAAAARVBhbFdhemFJRDo6VW5pcXVlX1BpbmtDYXRfQ2F0UHVuY2gAFQAAAEVQYWxXYXphSUQ6OkFpckNhbm9uAA0AAABNYXN0ZXJlZFdhemEADgAAAEFycmF5UHJvcGVydHkARQAAAAAAAAANAAAARW51bVByb3BlcnR5AAACAAAAJAAAAEVQYWxXYXphSUQ6OlVuaXF1ZV9QaW5rQ2F0X0NhdFB1bmNoABUAAABFUGFsV2F6YUlEOjpBaXJDYW5vbgADAAAASFAADwAAAFN0cnVjdFByb3BlcnR5ADYAAAAAAAAADQAAAEZpeGVkUG9pbnQ2NAAAAAAAAAAAAAAAAAAAAAAAAAYAAABWYWx1ZQAOAAAASW50NjRQcm9wZXJ0eQAIAAAAAAAAAAAQ2QwAAAAAAAUAAABOb25lAAoAAABUYWxlbnRfSFAADAAAAEludFByb3BlcnR5AAQAAAAAAAAAAFUAAAANAAAAVGFsZW50X01lbGVlAAwAAABJbnRQcm9wZXJ0eQAEAAAAAAAAAABcAAAADAAAAFRhbGVudF9TaG90AAwAAABJbnRQcm9wZXJ0eQAEAAAAAAAAAABNAAAADwAAAFRhbGVudF9EZWZlbnNlAAwAAABJbnRQcm9wZXJ0eQAEAAAAAAAAAAAUAAAADAAAAEZ1bGxTdG9tYWNoAA4AAABGbG9hdFByb3BlcnR5AAQAAAAAAAAAAHJG1kIRAAAAUGFzc2l2ZVNraWxsTGlzdAAOAAAAQXJyYXlQcm9wZXJ0eQAvAAAAAAAAAA0AAABOYW1lUHJvcGVydHkAAAIAAAAUAAAAUEFMX0FMTEF0dGFja19kb3duMQAPAAAARGVmZmVuY2VfZG93bjIAAwAAAE1QAA8AAABTdHJ1Y3RQcm9wZXJ0eQA2AAAAAAAAAA0AAABGaXhlZFBvaW50NjQAAAAAAAAAAAAAAAAAAAAAAAAGAAAAVmFsdWUADgAAAEludDY0UHJvcGVydHkACAAAAAAAAAAAoIYBAAAAAAAFAAAATm9uZQAKAAAAT3duZWRUaW1lAA8AAABTdHJ1Y3RQcm9wZXJ0eQAIAAAAAAAAAAkAAABEYXRlVGltZQAAAAAAAAAAAAAAAAAAAAAAANAHdE4hGdwIDwAAAE93bmVyUGxheWVyVUlkAA8AAABTdHJ1Y3RQcm9wZXJ0eQAQAAAAAAAAAAUAAABHdWlkAAAAAAAAAAAAAAAAAAAAAAAA3CurfwAAAAAAAAAAAAAAABMAAABPbGRPd25lclBsYXllclVJZHMADgAAAEFycmF5UHJvcGVydHkAYAAAAAAAAAAPAAAAU3RydWN0UHJvcGVydHkAAAEAAAATAAAAT2xkT3duZXJQbGF5ZXJVSWRzAA8AAABTdHJ1Y3RQcm9wZXJ0eQAQAAAAAAAAAAUAAABHdWlkAAAAAAAAAAAAAAAAAAAAAAAA3CurfwAAAAAAAAAAAAAAAAYAAABNYXhIUAAPAAAAU3RydWN0UHJvcGVydHkANgAAAAAAAAANAAAARml4ZWRQb2ludDY0AAAAAAAAAAAAAAAAAAAAAAAABgAAAFZhbHVlAA4AAABJbnQ2NFByb3BlcnR5AAgAAAAAAAAAABDZDAAAAAAABQAAAE5vbmUACwAAAENyYWZ0U3BlZWQADAAAAEludFByb3BlcnR5AAQAAAAAAAAAAEYAAAAMAAAAQ3JhZnRTcGVlZHMADgAAAEFycmF5UHJvcGVydHkAHggAAAAAAAAPAAAAU3RydWN0UHJvcGVydHkAAA0AAAAMAAAAQ3JhZnRTcGVlZHMADwAAAFN0cnVjdFByb3BlcnR5AMMHAAAAAAAAFwAAAFBhbFdvcmtTdWl0YWJpbGl0eUluZm8AAAAAAAAAAAAAAAAAAAAAAAAQAAAAV29ya1N1aXRhYmlsaXR5AA0AAABFbnVtUHJvcGVydHkAIwAAAAAAAAAUAAAARVBhbFdvcmtTdWl0YWJpbGl0eQAAHwAAAEVQYWxXb3JrU3VpdGFiaWxpdHk6OkVtaXRGbGFtZQAFAAAAUmFuawAMAAAASW50UHJvcGVydHkABAAAAAAAAAAAAAAAAAUAAABOb25lABAAAABXb3JrU3VpdGFiaWxpdHkADQAAAEVudW1Qcm9wZXJ0eQAiAAAAAAAAABQAAABFUGFsV29ya1N1aXRhYmlsaXR5AAAeAAAARVBhbFdvcmtTdWl0YWJpbGl0eTo6V2F0ZXJpbmcABQAAAFJhbmsADAAAAEludFByb3BlcnR5AAQAAAAAAAAAAAAAAAAFAAAATm9uZQAQAAAAV29ya1N1aXRhYmlsaXR5AA0AAABFbnVtUHJvcGVydHkAIQAAAAAAAAAUAAAARVBhbFdvcmtTdWl0YWJpbGl0eQAAHQAAAEVQYWxXb3JrU3VpdGFiaWxpdHk6OlNlZWRpbmcABQAAAFJhbmsADAAAAEludFByb3BlcnR5AAQAAAAAAAAAAAAAAAAFAAAATm9uZQAQAAAAV29ya1N1aXRhYmlsaXR5AA0AAABFbnVtUHJvcGVydHkALQAAAAAAAAAUAAAARVBhbFdvcmtTdWl0YWJpbGl0eQAAKQAAAEVQYWxXb3JrU3VpdGFiaWxpdHk6OkdlbmVyYXRlRWxlY3RyaWNpdHkABQAAAFJhbmsADAAAAEludFByb3BlcnR5AAQAAAAAAAAAAAAAAAAFAAAATm9uZQAQAAAAV29ya1N1aXRhYmlsaXR5AA0AAABFbnVtUHJvcGVydHkAIwAAAAAAAAAUAAAARVBhbFdvcmtTdWl0YWJpbGl0eQAAHwAAAEVQYWxXb3JrU3VpdGFiaWxpdHk6OkhhbmRjcmFmdAAFAAAAUmFuawAMAAAASW50UHJvcGVydHkABAAAAAAAAAAAAQAAAAUAAABOb25lABAAAABXb3JrU3VpdGFiaWxpdHkADQAAAEVudW1Qcm9wZXJ0eQAkAAAAAAAAABQAAABFUGFsV29ya1N1aXRhYmlsaXR5AAAgAAAARVBhbFdvcmtTdWl0YWJpbGl0eTo6Q29sbGVjdGlvbgAFAAAAUmFuawAMAAAASW50UHJvcGVydHkABAAAAAAAAAAAAQAAAAUAAABOb25lABAAAABXb3JrU3VpdGFiaWxpdHkADQAAAEVudW1Qcm9wZXJ0eQAiAAAAAAAAABQAAABFUGFsV29ya1N1aXRhYmlsaXR5AAAeAAAARVBhbFdvcmtTdWl0YWJpbGl0eTo6RGVmb3Jlc3QABQAAAFJhbmsADAAAAEludFByb3BlcnR5AAQAAAAAAAAAAAAAAAAFAAAATm9uZQAQAAAAV29ya1N1aXRhYmlsaXR5AA0AAABFbnVtUHJvcGVydHkAIAAAAAAAAAAUAAAARVBhbFdvcmtTdWl0YWJpbGl0eQAAHAAAAEVQYWxXb3JrU3VpdGFiaWxpdHk6Ok1pbmluZwAFAAAAUmFuawAMAAAASW50UHJvcGVydHkABAAAAAAAAAAAAQAAAAUAAABOb25lABAAAABXb3JrU3VpdGFiaWxpdHkADQAAAEVudW1Qcm9wZXJ0eQAnAAAAAAAAABQAAABFUGFsV29ya1N1aXRhYmlsaXR5AAAjAAAARVBhbFdvcmtTdWl0YWJpbGl0eTo6T2lsRXh0cmFjdGlvbgAFAAAAUmFuawAMAAAASW50UHJvcGVydHkABAAAAAAAAAAAAAAAAAUAAABOb25lABAAAABXb3JrU3VpdGFiaWxpdHkADQAAAEVudW1Qcm9wZXJ0eQApAAAAAAAAABQAAABFUGFsV29ya1N1aXRhYmlsaXR5AAAlAAAARVBhbFdvcmtTdWl0YWJpbGl0eTo6UHJvZHVjdE1lZGljaW5lAAUAAABSYW5rAAwAAABJbnRQcm9wZXJ0eQAEAAAAAAAAAAAAAAAABQAAAE5vbmUAEAAAAFdvcmtTdWl0YWJpbGl0eQANAAAARW51bVByb3BlcnR5AB4AAAAAAAAAFAAAAEVQYWxXb3JrU3VpdGFiaWxpdHkAABoAAABFUGFsV29ya1N1aXRhYmlsaXR5OjpDb29sAAUAAABSYW5rAAwAAABJbnRQcm9wZXJ0eQAEAAAAAAAAAAAAAAAABQAAAE5vbmUAEAAAAFdvcmtTdWl0YWJpbGl0eQANAAAARW51bVByb3BlcnR5ACMAAAAAAAAAFAAAAEVQYWxXb3JrU3VpdGFiaWxpdHkAAB8AAABFUGFsV29ya1N1aXRhYmlsaXR5OjpUcmFuc3BvcnQABQAA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"
)
properties = decode_character_data_bytes(test_data)
json_str = json.dumps(
properties, cls=CustomEncoder, ensure_ascii=False, indent=2
)
reparsed_properties = json.loads(json_str)
reconverted_data = encode_character_data_bytes(reparsed_properties)
self.assertEqual(test_data, reconverted_data)
def test_group_neutral(self):
test_data = base64.b64decode("VjIcY1hKCdXAmtWebNlJCwAAAAAAAAAA")
properties = decode_group_data_bytes(test_data, "EPalGroupType::Neutral")
json_str = json.dumps(
properties, cls=CustomEncoder, ensure_ascii=False, indent=2
)
reparsed_properties = json.loads(json_str)
reconverted_data = encode_group_data_bytes(reparsed_properties)
self.assertEqual(test_data, reconverted_data)
def test_group_guild(self):
test_data = base64.b64decode(
"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"
)
properties = decode_group_data_bytes(test_data, "EPalGroupType::Guild")
json_str = json.dumps(
properties, cls=CustomEncoder, ensure_ascii=False, indent=2
)
reparsed_properties = json.loads(json_str)
reconverted_data = encode_group_data_bytes(reparsed_properties)
self.assertEqual(test_data, reconverted_data)
def test_group_organization(self):
test_data = base64.b64decode(
"hJYrguAqq0C1R1LYdTOU+AAAAAAhAAAAAAAAAAAAAAAAAAAAAQAAAJP/oPkwde5Mu9LEZz4Ao7kAAAAAAAAAAAAAAAABAAAAS9gbh2lg/EK4JaUv6ZLvpAAAAAAAAAAAAAAAAAEAAABClNaHEgrLQbry8En6Ps5CAAAAAAAAAAAAAAAAAQAAAGi+Y6rkWoJNvNYiWy0wP2oAAAAAAAAAAAAAAAABAAAAyavtNRisZ0GMrffZPRwUUQAAAAAAAAAAAAAAAAEAAABaFkBiBdzaQI561vQWfEVlAAAAAAAAAAAAAAAAAQAAAEHsz/5oAthAqfTDrSU0iTQAAAAAAAAAAAAAAAABAAAAhpYm+oXOHEe0xluVcJae4QAAAAAAAAAAAAAAAAEAAABvbkhSUW08RrJ+2zUmlQosAAAAAAAAAAAAAAAAAQAAADHIBCjyiV5MvbwVQ4WutD8AAAAAAAAAAAAAAAABAAAAkCa0JufIAE6HDwfMXbIoXgAAAAAAAAAAAAAAAAEAAACSJCUqIPgzQ7C6QhHwFmDGAAAAAAAAAAAAAAAAAQAAANITOu234UJAtzHuFdmIf6oAAAAAAAAAAAAAAAABAAAAGf7viWmjZUaZ1YDZY68vpQAAAAAAAAAAAAAAAAEAAADzLXMPNgZxRaZEKrJAsFDRAAAAAAAAAAAAAAAAAQAAACTLT6S0hXBMiWhNCt1Q1CYAAAAAAAAAAAAAAAABAAAA8FIVKqLG+k6oDXo+08QXowAAAAAAAAAAAAAAAAEAAABtbXHJ1oETRaWNTBKI1YGvAAAAAAAAAAAAAAAAAQAAAMMbAwyhoONMqpUcq0MqPAkAAAAAAAAAAAAAAAABAAAAypjWd7uTjU6MdKuetLdZUAAAAAAAAAAAAAAAAAEAAAAyYKiVbDM+QaTY8Hv6ZObLAAAAAAAAAAAAAAAAAQAAAJAFrzxLoPFLl8DrAv8Gd3YAAAAAAAAAAAAAAAABAAAAKIACqxZ7p0GiR0TmrHacnwAAAAAAAAAAAAAAAAEAAADrw5+vNs5US7pOHBAvVR3tAAAAAAAAAAAAAAAAAQAAAF/uko9GJFFHqnPaQJbISvAAAAAAAAAAAAAAAAABAAAABUZ8Ixbmz0615pXXmYkR5AAAAAAAAAAAAAAAAAEAAACYDOqTTI28Qpw5lTLZSrBuAAAAAAAAAAAAAAAAAQAAAPLlWwh4i7JNn9QJ8BQlcS8AAAAAAAAAAAAAAAABAAAAHZMbTe8rTkeVXRN6twsB7QAAAAAAAAAAAAAAAAEAAAAwbMTEkrfWS4tBQ9T8pfmzAAAAAAAAAAAAAAAAAQAAANwynIWIZEpFsUrnDlenJaoAAAAAAAAAAAAAAAABAAAA38dfKnHdkk6/jK09vZCqywAAAAAAAAAAAAAAAAEAAACSTla8evFdSYUiwbuzgJrPAgAAAAA="
)
properties = decode_group_data_bytes(test_data, "EPalGroupType::Organization")
json_str = json.dumps(
properties, cls=CustomEncoder, ensure_ascii=False, indent=2
)
reparsed_properties = json.loads(json_str)
reconverted_data = encode_group_data_bytes(reparsed_properties)
self.assertEqual(test_data, reconverted_data)