jaseci 1.4.2.6__py3-none-any.whl → 2.0.0__py3-none-any.whl

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.

Potentially problematic release.


This version of jaseci might be problematic. Click here for more details.

Files changed (187) hide show
  1. jaseci/__init__.py +3 -37
  2. jaseci-2.0.0.dist-info/METADATA +65 -0
  3. jaseci-2.0.0.dist-info/RECORD +4 -0
  4. {jaseci-1.4.2.6.dist-info → jaseci-2.0.0.dist-info}/WHEEL +1 -2
  5. jaseci/VERSION +0 -1
  6. jaseci/cli_tools/__init__.py +0 -0
  7. jaseci/cli_tools/book_tools.py +0 -457
  8. jaseci/cli_tools/jsctl.py +0 -500
  9. jaseci/cli_tools/tests/__init__.py +0 -0
  10. jaseci/cli_tools/tests/test_jsctl.py +0 -556
  11. jaseci/extens/__init__.py +0 -0
  12. jaseci/extens/act_lib/__init__.py +0 -0
  13. jaseci/extens/act_lib/date.py +0 -118
  14. jaseci/extens/act_lib/elastic.py +0 -87
  15. jaseci/extens/act_lib/file.py +0 -77
  16. jaseci/extens/act_lib/file_handler.py +0 -190
  17. jaseci/extens/act_lib/internal.py +0 -19
  18. jaseci/extens/act_lib/jaseci.py +0 -62
  19. jaseci/extens/act_lib/mail.py +0 -10
  20. jaseci/extens/act_lib/maths.py +0 -168
  21. jaseci/extens/act_lib/net.py +0 -192
  22. jaseci/extens/act_lib/rand.py +0 -83
  23. jaseci/extens/act_lib/regex.py +0 -85
  24. jaseci/extens/act_lib/request.py +0 -170
  25. jaseci/extens/act_lib/std.py +0 -236
  26. jaseci/extens/act_lib/storage.py +0 -53
  27. jaseci/extens/act_lib/stripe.py +0 -338
  28. jaseci/extens/act_lib/task.py +0 -14
  29. jaseci/extens/act_lib/tests/__init__.py +0 -0
  30. jaseci/extens/act_lib/tests/std_test_code.py +0 -37
  31. jaseci/extens/act_lib/tests/test_date.py +0 -26
  32. jaseci/extens/act_lib/tests/test_elastic.py +0 -159
  33. jaseci/extens/act_lib/tests/test_file.py +0 -116
  34. jaseci/extens/act_lib/tests/test_file_lib.py +0 -40
  35. jaseci/extens/act_lib/tests/test_mail_lib.py +0 -33
  36. jaseci/extens/act_lib/tests/test_maths.py +0 -147
  37. jaseci/extens/act_lib/tests/test_net_lib.py +0 -62
  38. jaseci/extens/act_lib/tests/test_regex.py +0 -61
  39. jaseci/extens/act_lib/tests/test_std.py +0 -51
  40. jaseci/extens/act_lib/tests/test_std_lib.py +0 -36
  41. jaseci/extens/act_lib/tests/test_url.py +0 -32
  42. jaseci/extens/act_lib/tests/test_vector.py +0 -36
  43. jaseci/extens/act_lib/tests/test_webtool.py +0 -44
  44. jaseci/extens/act_lib/tests/test_zlib.py +0 -24
  45. jaseci/extens/act_lib/url.py +0 -80
  46. jaseci/extens/act_lib/vector.py +0 -158
  47. jaseci/extens/act_lib/webtool.py +0 -29
  48. jaseci/extens/act_lib/zip.py +0 -34
  49. jaseci/extens/api/__init__.py +0 -0
  50. jaseci/extens/api/actions_api.py +0 -171
  51. jaseci/extens/api/alias_api.py +0 -140
  52. jaseci/extens/api/architype_api.py +0 -197
  53. jaseci/extens/api/config_api.py +0 -129
  54. jaseci/extens/api/global_api.py +0 -85
  55. jaseci/extens/api/graph_api.py +0 -168
  56. jaseci/extens/api/health_api.py +0 -21
  57. jaseci/extens/api/interface.py +0 -269
  58. jaseci/extens/api/jac_api.py +0 -172
  59. jaseci/extens/api/jsorc_api.py +0 -317
  60. jaseci/extens/api/logger_api.py +0 -90
  61. jaseci/extens/api/master_api.py +0 -134
  62. jaseci/extens/api/object_api.py +0 -102
  63. jaseci/extens/api/prometheus_api.py +0 -75
  64. jaseci/extens/api/queue_api.py +0 -141
  65. jaseci/extens/api/sentinel_api.py +0 -271
  66. jaseci/extens/api/share_api.py +0 -64
  67. jaseci/extens/api/super_api.py +0 -65
  68. jaseci/extens/api/tests/__init__.py +0 -0
  69. jaseci/extens/api/tests/test_architype_api.py +0 -66
  70. jaseci/extens/api/tests/test_global_api.py +0 -179
  71. jaseci/extens/api/tests/test_graph_api.py +0 -64
  72. jaseci/extens/api/tests/test_logger_api.py +0 -43
  73. jaseci/extens/api/tests/test_object_api.py +0 -20
  74. jaseci/extens/api/tests/test_sentinel_api.py +0 -66
  75. jaseci/extens/api/tests/test_uncommon.py +0 -107
  76. jaseci/extens/api/tests/test_user_api.py +0 -32
  77. jaseci/extens/api/tests/test_walker_api.py +0 -316
  78. jaseci/extens/api/user_api.py +0 -166
  79. jaseci/extens/api/walker_api.py +0 -299
  80. jaseci/extens/api/webhook_api.py +0 -77
  81. jaseci/extens/svc/__init__.py +0 -0
  82. jaseci/extens/svc/elastic_svc.py +0 -366
  83. jaseci/extens/svc/kube_svc.py +0 -432
  84. jaseci/extens/svc/mail_svc.py +0 -156
  85. jaseci/extens/svc/prome_svc.py +0 -378
  86. jaseci/extens/svc/redis_svc.py +0 -63
  87. jaseci/extens/svc/storage_svc.py +0 -193
  88. jaseci/extens/svc/stripe_svc.py +0 -51
  89. jaseci/extens/svc/task_svc.py +0 -155
  90. jaseci/extens/svc/tasks.py +0 -302
  91. jaseci/jac/__init__.py +0 -0
  92. jaseci/jac/interpreter/__init__.py +0 -0
  93. jaseci/jac/interpreter/architype_interp.py +0 -219
  94. jaseci/jac/interpreter/interp.py +0 -1784
  95. jaseci/jac/interpreter/sentinel_interp.py +0 -260
  96. jaseci/jac/interpreter/tests/__init__.py +0 -0
  97. jaseci/jac/interpreter/tests/test_interp.py +0 -42
  98. jaseci/jac/interpreter/walker_interp.py +0 -249
  99. jaseci/jac/ir/__init__.py +0 -0
  100. jaseci/jac/ir/ast.py +0 -73
  101. jaseci/jac/ir/ast_builder.py +0 -249
  102. jaseci/jac/ir/jac_code.py +0 -151
  103. jaseci/jac/ir/passes/__init__.py +0 -6
  104. jaseci/jac/ir/passes/ast_prune_pass.py +0 -9
  105. jaseci/jac/ir/passes/codegen_pass.py +0 -244
  106. jaseci/jac/ir/passes/ir_pass.py +0 -29
  107. jaseci/jac/ir/passes/printer_pass.py +0 -23
  108. jaseci/jac/ir/passes/pt_prune_pass.py +0 -29
  109. jaseci/jac/ir/passes/schedule.py +0 -23
  110. jaseci/jac/ir/passes/stats_pass.py +0 -16
  111. jaseci/jac/jac.g4 +0 -450
  112. jaseci/jac/jac_parse/__init__.py +0 -0
  113. jaseci/jac/jac_parse/jacLexer.py +0 -809
  114. jaseci/jac/jac_parse/jacListener.py +0 -853
  115. jaseci/jac/jac_parse/jacParser.py +0 -9192
  116. jaseci/jac/jac_set.py +0 -120
  117. jaseci/jac/jsci_vm/__init__.py +0 -0
  118. jaseci/jac/jsci_vm/disasm.py +0 -94
  119. jaseci/jac/jsci_vm/inst_ptr.py +0 -31
  120. jaseci/jac/jsci_vm/machine.py +0 -188
  121. jaseci/jac/jsci_vm/op_codes.py +0 -82
  122. jaseci/jac/jsci_vm/tests/__init__.py +0 -0
  123. jaseci/jac/jsci_vm/tests/test_codegen.py +0 -31
  124. jaseci/jac/machine/__init__.py +0 -0
  125. jaseci/jac/machine/jac_scope.py +0 -86
  126. jaseci/jac/machine/jac_value.py +0 -227
  127. jaseci/jac/machine/machine_state.py +0 -386
  128. jaseci/jac/tests/__init__.py +0 -0
  129. jaseci/jac/tests/book_code.py +0 -624
  130. jaseci/jac/tests/test_book.py +0 -380
  131. jaseci/jac/tests/test_lang_14.py +0 -49
  132. jaseci/jsorc/__init__.py +0 -7
  133. jaseci/jsorc/jsorc.py +0 -642
  134. jaseci/jsorc/jsorc_settings.py +0 -211
  135. jaseci/jsorc/jsorc_utils.py +0 -298
  136. jaseci/jsorc/live_actions.py +0 -365
  137. jaseci/jsorc/manifests/__init__.py +0 -0
  138. jaseci/jsorc/manifests/database.yaml +0 -109
  139. jaseci/jsorc/manifests/elastic.yaml +0 -6029
  140. jaseci/jsorc/manifests/prometheus.yaml +0 -1383
  141. jaseci/jsorc/manifests/redis.yaml +0 -64
  142. jaseci/jsorc/memory.py +0 -258
  143. jaseci/jsorc/redis.py +0 -140
  144. jaseci/jsorc/remote_actions.py +0 -158
  145. jaseci/jsorc/tests/__init__.py +0 -0
  146. jaseci/jsorc/tests/test_actions.py +0 -542
  147. jaseci/jsorc/tests/test_jsorc.py +0 -112
  148. jaseci/prim/__init__.py +0 -0
  149. jaseci/prim/ability.py +0 -94
  150. jaseci/prim/architype.py +0 -90
  151. jaseci/prim/edge.py +0 -173
  152. jaseci/prim/element.py +0 -233
  153. jaseci/prim/graph.py +0 -27
  154. jaseci/prim/master.py +0 -67
  155. jaseci/prim/node.py +0 -533
  156. jaseci/prim/obj_mixins.py +0 -238
  157. jaseci/prim/sentinel.py +0 -282
  158. jaseci/prim/super_master.py +0 -31
  159. jaseci/prim/walker.py +0 -261
  160. jaseci/svc/__init__.py +0 -0
  161. jaseci/tests/__init__.py +0 -0
  162. jaseci/tests/infer.py +0 -39
  163. jaseci/tests/jac_test_code.py +0 -1293
  164. jaseci/tests/jac_test_progs.py +0 -774
  165. jaseci/tests/test_core.py +0 -153
  166. jaseci/tests/test_jac.py +0 -824
  167. jaseci/tests/test_node.py +0 -89
  168. jaseci/tests/test_progs.py +0 -702
  169. jaseci/tests/test_stack.py +0 -220
  170. jaseci/tests/test_stripe.py +0 -225
  171. jaseci/utils/__init__.py +0 -0
  172. jaseci/utils/actions/__init__.py +0 -0
  173. jaseci/utils/actions/actions_manager.py +0 -254
  174. jaseci/utils/actions/actions_optimizer.py +0 -517
  175. jaseci/utils/actions/actions_state.py +0 -95
  176. jaseci/utils/file_handler.py +0 -171
  177. jaseci/utils/gprof2dot.py +0 -3786
  178. jaseci/utils/id_list.py +0 -169
  179. jaseci/utils/json_handler.py +0 -70
  180. jaseci/utils/log_utils.py +0 -57
  181. jaseci/utils/test_core.py +0 -62
  182. jaseci/utils/utils.py +0 -387
  183. jaseci-1.4.2.6.dist-info/LICENSE +0 -21
  184. jaseci-1.4.2.6.dist-info/METADATA +0 -39
  185. jaseci-1.4.2.6.dist-info/RECORD +0 -185
  186. jaseci-1.4.2.6.dist-info/entry_points.txt +0 -3
  187. jaseci-1.4.2.6.dist-info/top_level.txt +0 -1
@@ -1,159 +0,0 @@
1
- from jaseci.jsorc.jsorc import JsOrc
2
- from jaseci.extens.svc.elastic_svc import ElasticService
3
- from jaseci.utils.test_core import CoreTest
4
-
5
-
6
- class ElasticTest(CoreTest):
7
- """Unit tests for Jac Walker APIs"""
8
-
9
- fixture_src = __file__
10
-
11
- def setUp(self):
12
- super().setUp()
13
-
14
- @JsOrc.inject(services=["elastic"])
15
- def test_elastic(self, elastic: ElasticService):
16
- if not elastic.is_running():
17
- self.skipTest("Elastic is not available!")
18
-
19
- res = self.call(
20
- self.mast,
21
- ["sentinel_register", {"code": self.load_jac("elastic.jac")}],
22
- )
23
-
24
- res = self.call(
25
- self.mast,
26
- [
27
- "walker_run",
28
- {"name": "test_activity", "ctx": {"a": 1, "b": 2, "c": 3}},
29
- ],
30
- )
31
-
32
- # report std.log_activity({"other_field": 1}, action = "CUSTOM_ACTION_NAME");
33
- self.assertEqual("created", res["report"][0]["result"])
34
-
35
- # report std.log_activity({"other_field": 2}, action = "CUSTOM_ACTION_NAME", suffix="-sample-id");
36
- self.assertEqual("created", res["report"][1]["result"])
37
-
38
- # report elastic.doc_activity({"testing": "doc_activity"});
39
- self.assertEqual("created", res["report"][2]["result"])
40
-
41
- # report elastic.search_activity({});
42
- hits = res["report"][3]["hits"]
43
-
44
- self.assertEqual(2, hits["total"]["value"])
45
- self.assertEqual({"a": 1, "b": 2, "c": 3}, hits["hits"][0]["_source"]["data"])
46
- self.assertEqual(1, hits["hits"][0]["_source"].get("other_field"))
47
- self.assertEqual({"testing": "doc_activity"}, hits["hits"][1]["_source"])
48
-
49
- # report elastic.search_activity({}, suffix="-sample-id");
50
- hits = res["report"][4]["hits"]
51
-
52
- self.assertEqual(1, hits["total"]["value"])
53
- self.assertEqual({"a": 1, "b": 2, "c": 3}, hits["hits"][0]["_source"]["data"])
54
- self.assertEqual(2, hits["hits"][0]["_source"].get("other_field"))
55
-
56
- # report elastic.mapping_activity();
57
- mapping: dict = res["report"][5]
58
- for key, value in mapping.items():
59
- self.assertTrue(key.endswith("-activity"))
60
- self.assertTrue(key.startswith("jaseci-"))
61
- self.assertTrue(value["mappings"])
62
-
63
- # report elastic.mapping_activity(suffix="-sample-id");
64
- mapping: dict = res["report"][6]
65
- for key, value in mapping.items():
66
- self.assertTrue(key.endswith("-activity-sample-id"))
67
- self.assertTrue(key.startswith("jaseci-"))
68
- self.assertTrue(value["mappings"])
69
-
70
- res = self.call(
71
- self.mast,
72
- [
73
- "walker_run",
74
- {"name": "test_common", "ctx": {"d": 1, "e": 2, "f": 3}},
75
- ],
76
- )
77
-
78
- # report elastic.doc({"testing": "doc"});
79
- self.assertEqual("created", res["report"][0]["result"])
80
-
81
- # elastic.doc({"testing": "doc-other-index"}, index="other-index");
82
- self.assertEqual("created", res["report"][1]["result"])
83
-
84
- # elastic.doc({"testing": "doc-other-index"}, index="other-index", suffix="-user-id");
85
- self.assertEqual("created", res["report"][2]["result"])
86
-
87
- # report elastic.search({});
88
- hits = res["report"][3]["hits"]
89
-
90
- self.assertEqual(1, hits["total"]["value"])
91
- self.assertEqual({"testing": "doc"}, hits["hits"][0]["_source"])
92
-
93
- # elastic.search({}, index="other-index");
94
- hits = res["report"][4]["hits"]
95
-
96
- self.assertEqual(1, hits["total"]["value"])
97
- self.assertEqual({"testing": "doc-other-index"}, hits["hits"][0]["_source"])
98
-
99
- # elastic.search({}, index="other-index", suffix="-user-id");
100
- hits = res["report"][5]["hits"]
101
-
102
- self.assertEqual(1, hits["total"]["value"])
103
- self.assertEqual(
104
- {"testing": "doc-other-index-suffix"}, hits["hits"][0]["_source"]
105
- )
106
-
107
- # report elastic.mapping();
108
- mapping: dict = res["report"][6]
109
- for key, value in mapping.items():
110
- self.assertTrue(key.endswith("-common"))
111
- self.assertTrue(key.startswith("jaseci-"))
112
- self.assertTrue(value["mappings"])
113
-
114
- # report elastic.mapping(index="other-index");
115
- mapping: dict = res["report"][7]
116
- for key, value in mapping.items():
117
- self.assertEqual(key, "other-index")
118
- self.assertTrue(value["mappings"])
119
-
120
- # report elastic.mapping(index="other-index", suffix="-user-id");
121
- mapping: dict = res["report"][8]
122
- for key, value in mapping.items():
123
- self.assertEqual(key, "other-index-user-id")
124
- self.assertTrue(value["mappings"])
125
-
126
- res = self.call(
127
- self.mast,
128
- [
129
- "walker_run",
130
- {"name": "test_other", "ctx": {}},
131
- ],
132
- )
133
-
134
- # report elastic.reindex
135
- self.assertEqual(1, res["report"][0]["created"])
136
-
137
- # report elastic.aliases();
138
- aliases: dict = res["report"][1]
139
- self.assertEqual(6, len(aliases.keys()))
140
- self.assertTrue(aliases.pop("other-index"))
141
- self.assertTrue(aliases.pop("other-index-user-id"))
142
- self.assertTrue(aliases.pop("new-index"))
143
- for key in list(aliases.keys()):
144
- if key.startswith("jaseci-"):
145
- if (
146
- key.endswith("-activity")
147
- or key.endswith("-common")
148
- or key.endswith("-activity-sample-id")
149
- ):
150
- self.assertTrue(aliases.pop(key))
151
- self.assertFalse(aliases)
152
-
153
- # report elastic.search({}, index="new-index");
154
- hits = res["report"][2]["hits"]
155
-
156
- self.assertEqual(1, hits["total"]["value"])
157
- self.assertEqual(
158
- {"testing": "doc-other-index-suffix"}, hits["hits"][0]["_source"]
159
- )
@@ -1,116 +0,0 @@
1
- from jaseci.utils.test_core import CoreTest
2
- from unittest.mock import patch
3
- from io import BufferedReader
4
-
5
-
6
- class FileTest(CoreTest):
7
- """Unit tests for Jac Walker APIs"""
8
-
9
- fixture_src = __file__
10
-
11
- def setUp(self):
12
- super().setUp()
13
-
14
- def tearDown(self):
15
- self.mast._h.clean_file_handler()
16
- super().tearDown()
17
-
18
- def call_walker(self, name, report=True):
19
- res = self.call(
20
- self.mast,
21
- [
22
- "walker_run",
23
- {"name": name, "ctx": {}},
24
- ],
25
- )
26
-
27
- self.assertTrue(res["success"])
28
- return res["report"] if report else res
29
-
30
- def test_file_syntax(self):
31
- self.call(
32
- self.mast,
33
- ["sentinel_register", {"code": self.load_jac("file.jac")}],
34
- )
35
-
36
- reps = self.call_walker("new_file")
37
- self.assertEqual("", reps[1])
38
- self.assertEqual("", reps[2])
39
- self.assertEqual("0", reps[3])
40
- self.assertEqual("00", reps[4])
41
- self.assertEqual("MDA=", reps[5])
42
- self.assertTrue(reps[6])
43
- self.assertFalse(reps[7])
44
-
45
- reps = self.call_walker("json_file")
46
- self.assertEqual({"testing": 1}, reps[0])
47
- self.assertTrue(reps[1])
48
- self.assertFalse(reps[2])
49
-
50
- reps = self.call_walker("download_file")
51
- uuid = reps[0]
52
- self.assertEqual(
53
- {
54
- "id": f"{uuid}",
55
- "name": "jaseci_bible.pdf",
56
- "content_type": "application/pdf",
57
- "field": None,
58
- "absolute_name": f"{uuid}-jaseci_bible.pdf",
59
- "absolute_path": f"/tmp/{uuid}-jaseci_bible.pdf",
60
- "persist": False,
61
- },
62
- reps[1],
63
- )
64
-
65
- reps = self.mast._h.get_file_handler(
66
- self.call_walker("return_any_file", False)["report_file"]
67
- ).attr()
68
- uuid = reps["id"]
69
- self.assertEqual(
70
- {
71
- "id": f"{uuid}",
72
- "name": "jaseci_bible.pdf",
73
- "content_type": "application/pdf",
74
- "field": None,
75
- "absolute_name": f"{uuid}-jaseci_bible.pdf",
76
- "absolute_path": f"/tmp/{uuid}-jaseci_bible.pdf",
77
- "persist": False,
78
- },
79
- reps,
80
- )
81
-
82
- reps = self.mast._h.get_file_handler(
83
- self.call_walker("return_any_file_with_name", False)["report_file"]
84
- ).attr()
85
- uuid = reps["id"]
86
- self.assertEqual(
87
- {
88
- "id": f"{uuid}",
89
- "name": "jaseci_bible.pdf",
90
- "content_type": "application/pdf",
91
- "field": None,
92
- "absolute_name": f"{uuid}-jaseci_bible.pdf",
93
- "absolute_path": f"/tmp/{uuid}-jaseci_bible.pdf",
94
- "persist": False,
95
- },
96
- reps,
97
- )
98
-
99
- @patch("requests.post")
100
- def test_manual_upload_file(self, mock_post):
101
- self.call(
102
- self.mast,
103
- ["sentinel_register", {"code": self.load_jac("file.jac")}],
104
- )
105
-
106
- self.call_walker("manual_upload_file")
107
- self.assertTrue(mock_post.called)
108
- args, kwargs = mock_post.call_args
109
- self.assertEqual(1, len(args))
110
- self.assertEqual("https://sample/com", args[0])
111
- self.assertEqual({"test": 1}, kwargs["data"])
112
- self.assertEqual({"test": 2}, kwargs["headers"])
113
- self.assertEqual("file", kwargs["files"][0][0])
114
- self.assertEqual("jaseci_bible.pdf", kwargs["files"][0][1][0])
115
- self.assertIsInstance(kwargs["files"][0][1][1], BufferedReader)
116
- self.assertEqual("application/pdf", kwargs["files"][0][1][2])
@@ -1,40 +0,0 @@
1
- from jaseci.utils.test_core import CoreTest
2
- import os
3
-
4
-
5
- class FileLibTest(CoreTest):
6
- fixture_src = __file__
7
-
8
- def test_json_dump(self):
9
- ret = self.call(
10
- self.mast,
11
- ["sentinel_register", {"code": self.load_jac("file_stuff.jac")}],
12
- )
13
- ret = self.call(self.mast, ["walker_run", {"name": "pack_it"}])
14
- self.assertEqual(ret["report"][0], {"hello": 5})
15
-
16
- def test_bin_load_save(self):
17
- ret = self.call(
18
- self.mast,
19
- ["sentinel_register", {"code": self.load_jac("file_stuff.jac")}],
20
- )
21
- ret = self.call(self.mast, ["walker_run", {"name": "bin_load_save"}])
22
- self.assertEqual(
23
- ret["report"][0],
24
- "iVBORw0KGgoAAAANSUhEUgAAAAgAAAAIAQMAAAD+wSzIAAAABlBMVEX"
25
- "///+/v7+jQ3Y5AAAADklEQVQI12P4AIX8EAgALgAD/aNpbtEAAAAASUVORK5CYII=",
26
- )
27
- self.assertFalse(os.path.exists("file.gif"))
28
-
29
- def test_kwargs_bin_load_save(self):
30
- ret = self.call(
31
- self.mast,
32
- ["sentinel_register", {"code": self.load_jac("file_stuff.jac")}],
33
- )
34
- ret = self.call(self.mast, ["walker_run", {"name": "kwargs_bin_load_save"}])
35
- self.assertEqual(
36
- ret["report"][0],
37
- "iVBORw0KGgoAAAANSUhEUgAAAAgAAAAIAQMAAAD+wSzIAAAABlBMVEX"
38
- "///+/v7+jQ3Y5AAAADklEQVQI12P4AIX8EAgALgAD/aNpbtEAAAAASUVORK5CYII=",
39
- )
40
- self.assertFalse(os.path.exists("file.gif"))
@@ -1,33 +0,0 @@
1
- from unittest.mock import MagicMock, Mock
2
-
3
- from jaseci.jsorc.jsorc import JsOrc
4
- from jaseci.extens.svc.mail_svc import MailService
5
- from jaseci.utils.test_core import CoreTest
6
-
7
-
8
- class MailLibTest(CoreTest):
9
- """Unit tests for Jac Walker APIs"""
10
-
11
- fixture_src = __file__
12
-
13
- def __init__(self, *args, **kwargs):
14
- JsOrc.settings("MAIL_CONFIG")["enabled"] = True
15
- MailService.connect = MagicMock(return_value=Mock())
16
- super(MailLibTest, self).__init__(*args, **kwargs)
17
-
18
- def setUp(self):
19
- super().setUp()
20
-
21
- @JsOrc.inject(services=["mail"])
22
- def test_send_mail(self, mail: MailService):
23
- self.call(
24
- self.mast,
25
- ["sentinel_register", {"code": self.load_jac("mail_test.jac")}],
26
- )
27
- ret = self.call(self.mast, ["walker_run", {"name": "send_mail"}])
28
- self.assertTrue(ret["success"])
29
- self.assertTrue(mail.connect.called)
30
- self.assertEqual(
31
- mail.app.method_calls[0].args,
32
- (None, ["jaseci.dev@gmail.com"], "Test Subject", ("Test", "<h1>Test</h1>")),
33
- )
@@ -1,147 +0,0 @@
1
- from jaseci.utils.test_core import CoreTest, jac_testcase
2
-
3
-
4
- class MathsTests(CoreTest):
5
- """UnitTest for Regex Module"""
6
-
7
- fixture_src = __file__
8
-
9
- @jac_testcase("maths.jac", "ceil_test")
10
- def test_ceil(self, ret):
11
- ret = ret["report"][0]
12
- self.assertEqual(ret, 124)
13
-
14
- @jac_testcase("maths.jac", "comb_test")
15
- def test_comb(self, ret):
16
- ret = ret["report"][0]
17
- self.assertEqual(ret, 4950)
18
-
19
- @jac_testcase("maths.jac", "copysign_test")
20
- def test_copysign(self, ret):
21
- ret = ret["report"][0]
22
- self.assertEqual(ret, -100.0)
23
-
24
- @jac_testcase("maths.jac", "fabs_test")
25
- def test_fabs(self, ret):
26
- ret = ret["report"][0]
27
- self.assertEqual(ret, 10.0)
28
-
29
- @jac_testcase("maths.jac", "factorial_test")
30
- def test_factorial(self, ret):
31
- ret = ret["report"][0]
32
- self.assertEqual(ret, 3628800)
33
-
34
- @jac_testcase("maths.jac", "floor_test")
35
- def test_floor(self, ret):
36
- ret = ret["report"][0]
37
- self.assertEqual(ret, 10)
38
-
39
- @jac_testcase("maths.jac", "fmod_test")
40
- def test_fmod(self, ret):
41
- ret = ret["report"][0]
42
- self.assertEqual(ret, 1.0)
43
-
44
- @jac_testcase("maths.jac", "frexp_test")
45
- def test_frexp(self, ret):
46
- ret = ret["report"][0]
47
- self.assertEqual(ret, [0.78125, 7])
48
-
49
- @jac_testcase("maths.jac", "fsum_test")
50
- def test_fsum(self, ret):
51
- ret = ret["report"][0]
52
- self.assertEqual(ret, 18.0)
53
-
54
- @jac_testcase("maths.jac", "gcd_test")
55
- def test_gcd(self, ret):
56
- ret = ret["report"][0]
57
- self.assertEqual(ret, 1)
58
-
59
- @jac_testcase("maths.jac", "isclose_test")
60
- def test_isclose(self, ret):
61
- ret = ret["report"][0]
62
- self.assertEqual(ret, False)
63
-
64
- @jac_testcase("maths.jac", "isfinite_test")
65
- def test_isfinite(self, ret):
66
- ret = ret["report"][0]
67
- self.assertEqual(ret, True)
68
-
69
- @jac_testcase("maths.jac", "isinf_test")
70
- def test_isinf(self, ret):
71
- ret = ret["report"][0]
72
- self.assertEqual(ret, False)
73
-
74
- @jac_testcase("maths.jac", "isnan_test")
75
- def test_isnan(self, ret):
76
- ret = ret["report"][0]
77
- self.assertEqual(ret, False)
78
-
79
- @jac_testcase("maths.jac", "isqrt_test")
80
- def test_isqrt(self, ret):
81
- ret = ret["report"][0]
82
- self.assertEqual(ret, 3)
83
-
84
- @jac_testcase("maths.jac", "lcm_test")
85
- def test_lcm(self, ret):
86
- ret = ret["report"][0]
87
- self.assertEqual(ret, 420)
88
-
89
- @jac_testcase("maths.jac", "ldexp_test")
90
- def test_isqrt(self, ret):
91
- ret = ret["report"][0]
92
- self.assertEqual(ret, 36.0)
93
-
94
- @jac_testcase("maths.jac", "modf_test")
95
- def test_modf(self, ret):
96
- ret = ret["report"][0]
97
- self.assertEqual(ret, [0.0, 9.0])
98
-
99
- @jac_testcase("maths.jac", "nextafter_test")
100
- def test_nextafter(self, ret):
101
- ret = ret["report"][0]
102
- self.assertEqual(ret, 8.999999999999998)
103
-
104
- @jac_testcase("maths.jac", "perm_test")
105
- def test_perm(self, ret):
106
- ret = ret["report"][0]
107
- self.assertEqual(ret, 25852016738884976640000)
108
-
109
- @jac_testcase("maths.jac", "prod_test")
110
- def test_prod(self, ret):
111
- ret = ret["report"][0]
112
- self.assertEqual(ret, 120)
113
-
114
- @jac_testcase("maths.jac", "remainder_test")
115
- def test_remainder(self, ret):
116
- ret = ret["report"][0]
117
- self.assertEqual(ret, 3.0)
118
-
119
- @jac_testcase("maths.jac", "trunc_test")
120
- def test_trunc(self, ret):
121
- ret = ret["report"][0]
122
- self.assertEqual(ret, 23)
123
-
124
- @jac_testcase("maths.jac", "trunc_test")
125
- def test_trunc(self, ret):
126
- ret = ret["report"][0]
127
- self.assertEqual(ret, 23)
128
-
129
- @jac_testcase("maths.jac", "ulp_test")
130
- def test_ulp(self, ret):
131
- ret = ret["report"][0]
132
- self.assertEqual(ret, 3.552713678800501e-15)
133
-
134
- @jac_testcase("maths.jac", "cubert_test")
135
- def test_cubert(self, ret):
136
- ret = ret["report"][0]
137
- self.assertEqual(ret, 3.0)
138
-
139
- @jac_testcase("maths.jac", "exp_test")
140
- def test_exp(self, ret):
141
- ret = ret["report"][0]
142
- self.assertEqual(ret, 532048240601.79865)
143
-
144
- @jac_testcase("maths.jac", "log_test")
145
- def test_log(self, ret):
146
- ret = ret["report"][0]
147
- self.assertEqual(ret, 1.4313637641589871)
@@ -1,62 +0,0 @@
1
- from jaseci.utils.test_core import CoreTest
2
-
3
-
4
- class NetLibTest(CoreTest):
5
- """Unit tests for Jac Walker APIs"""
6
-
7
- fixture_src = __file__
8
-
9
- def test_pack(self):
10
- ret = self.call(
11
- self.mast,
12
- ["sentinel_register", {"code": self.load_jac("net_pack.jac")}],
13
- )
14
- ret = self.call(self.mast, ["walker_run", {"name": "pack_it"}])
15
- self.assertEqual(len(ret["report"][0]["nodes"]), 11)
16
- self.assertEqual(len(ret["report"][0]["edges"]), 10)
17
-
18
- def test_pack_subgraph(self):
19
- self.call(
20
- self.mast,
21
- ["sentinel_register", {"code": self.load_jac("net_pack.jac")}],
22
- )
23
- ret = self.call(self.mast, ["walker_run", {"name": "pack_it_subgraph"}])
24
- self.assertEqual(len(ret["report"][0]["nodes"]), 5)
25
- self.assertEqual(len(ret["report"][0]["edges"]), 4)
26
-
27
- def test_pack_unpack(self):
28
- ret = self.call(
29
- self.mast,
30
- ["sentinel_register", {"code": self.load_jac("net_pack.jac")}],
31
- )
32
- ret = self.call(self.mast, ["walker_run", {"name": "pack_unpack"}])
33
-
34
- self.assertEqual(ret["report"][0], 16)
35
-
36
- def test_pack_unpack_terse(self):
37
- self.call(
38
- self.mast,
39
- ["sentinel_register", {"code": self.load_jac("net_pack.jac")}],
40
- )
41
- ret = self.call(self.mast, ["walker_run", {"name": "pack_unpack_terse"}])
42
- self.assertEqual(ret["report"][0], 16)
43
-
44
- def test_pack_and_destroy(self):
45
- self.call(
46
- self.mast,
47
- ["sentinel_register", {"code": self.load_jac("net_pack.jac")}],
48
- )
49
- before = len(self.smast._h.mem)
50
- ret = self.call(self.mast, ["walker_run", {"name": "pack_it_destroy"}])
51
- self.assertEqual(len(ret["report"]), 1)
52
- after = len(self.smast._h.mem)
53
- self.assertEqual(before, after)
54
-
55
- def test_pack_anc_priv(self):
56
- self.call(
57
- self.mast,
58
- ["sentinel_register", {"code": self.load_jac("net_pack.jac")}],
59
- )
60
- ret = self.call(self.mast, ["walker_run", {"name": "pack_it_anc_priv"}])
61
- self.assertEqual(len(ret["report"]), 6)
62
- self.assertNotIn("priv", ret["report"][2]["context"])
@@ -1,61 +0,0 @@
1
- from jaseci.utils.test_core import CoreTest, jac_testcase
2
-
3
-
4
- class RegexTest(CoreTest):
5
- """UnitTest for Regex Module"""
6
-
7
- fixture_src = __file__
8
-
9
- @jac_testcase("regex.jac", "findall_test")
10
- def test_findall(self, ret):
11
- ret1 = [ret["report"][0][0]]
12
- ret2 = [ret["report"][0][1]]
13
- self.assertEqual(ret1, [("width", "20")])
14
- self.assertEqual(ret2, [("height", "10")])
15
-
16
- @jac_testcase("regex.jac", "search_test")
17
- def test_search(self, ret):
18
- ret = ret["report"]
19
- self.assertEqual(ret, [{"span": (5, 7), "match": "ai"}])
20
-
21
- @jac_testcase("regex.jac", "match_test")
22
- def test_match(self, ret):
23
- ret = ret["report"]
24
- self.assertEqual(ret, [{"span": (0, 1), "match": "T"}])
25
-
26
- @jac_testcase("regex.jac", "fullmatch_test")
27
- def test_fullmatch(self, ret):
28
- ret = ret["report"]
29
- self.assertEqual(ret, [{"span": (0, 16), "match": "THEQUICKBROWNFOX"}])
30
-
31
- @jac_testcase("regex.jac", "split_test")
32
- def test_split(self, ret):
33
- ret = ret["report"]
34
- self.assertEqual(ret, [["Words", "words", "words", ""]])
35
-
36
- @jac_testcase("regex.jac", "finditer_test")
37
- def test_finditer(self, ret):
38
- ret = ret["report"]
39
- self.assertEqual(
40
- ret,
41
- [[{"span": (0, 4), "match": "Blue"}, {"span": (13, 17), "match": "Blue"}]],
42
- )
43
-
44
- @jac_testcase("regex.jac", "sub_test")
45
- def test_sub(self, ret):
46
- ret = ret["report"]
47
- self.assertEqual(ret, ["Account Number - NN, Amount - NN.NN"])
48
-
49
- @jac_testcase("regex.jac", "subn_test")
50
- def test_subn(self, ret):
51
- ret = ret["report"]
52
- self.assertEqual(ret, [["Account Number - NN, Amount - NN.NN", 3]])
53
-
54
- @jac_testcase("regex.jac", "escape_test")
55
- def test_escape(self, ret):
56
- ret = ret["report"]
57
- self.assertEqual(ret, ["https://www\\.jaseci\\.org"])
58
-
59
- @jac_testcase("regex.jac", "purge_test")
60
- def test_purge(self, ret):
61
- self.assertEqual(ret["success"], True)
@@ -1,51 +0,0 @@
1
- from unittest import TestCase
2
-
3
- import jaseci.extens.act_lib.tests.std_test_code as stc
4
- from jaseci.prim.sentinel import Sentinel
5
- from jaseci.prim.graph import Graph
6
- from jaseci.jsorc.jsorc import JsOrc
7
- from jaseci.utils.utils import TestCaseHelper
8
-
9
-
10
- class JacTests(TestCaseHelper, TestCase):
11
- """Unit tests for STD library language"""
12
-
13
- def setUp(self):
14
- super().setUp()
15
-
16
- def tearDown(self):
17
- super().tearDown()
18
-
19
- def test_rand_std(self):
20
- sent = Sentinel(m_id=0, h=JsOrc.hook())
21
- gph = Graph(m_id=0, h=sent._h)
22
- sent.register_code(stc.rand_std)
23
- test_walker = sent.run_architype("init")
24
- test_walker.prime(gph)
25
- test_walker.run()
26
- report = test_walker.report
27
- self.assertEqual(len(report), 4)
28
- self.assertGreater(len(report[1]), len(report[0]))
29
- self.assertGreater(len(report[2]), len(report[1]))
30
- self.assertGreater(len(report[3]), len(report[2]))
31
-
32
- def test_file_io(self):
33
- sent = Sentinel(m_id=0, h=JsOrc.hook())
34
- gph = Graph(m_id=0, h=sent._h)
35
- sent.register_code(stc.file_io)
36
- test_walker = sent.run_architype("init")
37
- test_walker.prime(gph)
38
- test_walker.run()
39
- report = test_walker.report
40
- self.assertEqual(report, ['{"a": 10}{"a": 10}'])
41
-
42
- def test_std_used_in_node_has_var(self):
43
- sent = Sentinel(m_id=0, h=JsOrc.hook())
44
- gph = Graph(m_id=0, h=sent._h)
45
- sent.register_code(stc.std_used_in_node_has_var)
46
- test_walker = sent.run_architype("init")
47
- test_walker.prime(gph)
48
- test_walker.run()
49
- report = test_walker.report
50
- self.assertGreater(len(report[0]), 10)
51
- self.assertEqual(type(report[0]), str)