OpenGeodeWeb-Back 6.6.0rc1__tar.gz → 6.6.0rc2__tar.gz

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.
Files changed (104) hide show
  1. {opengeodeweb_back-6.6.0rc1/src/OpenGeodeWeb_Back.egg-info → opengeodeweb_back-6.6.0rc2}/PKG-INFO +1 -1
  2. {opengeodeweb_back-6.6.0rc1 → opengeodeweb_back-6.6.0rc2}/pyproject.toml +1 -1
  3. {opengeodeweb_back-6.6.0rc1 → opengeodeweb_back-6.6.0rc2/src/OpenGeodeWeb_Back.egg-info}/PKG-INFO +1 -1
  4. {opengeodeweb_back-6.6.0rc1 → opengeodeweb_back-6.6.0rc2}/src/OpenGeodeWeb_Back.egg-info/SOURCES.txt +2 -0
  5. {opengeodeweb_back-6.6.0rc1 → opengeodeweb_back-6.6.0rc2}/src/opengeodeweb_back/routes/create/blueprint_create.py +26 -0
  6. opengeodeweb_back-6.6.0rc2/src/opengeodeweb_back/routes/create/schemas/__init__.py +2 -0
  7. opengeodeweb_back-6.6.0rc2/src/opengeodeweb_back/routes/create/schemas/edged_curve.json +38 -0
  8. opengeodeweb_back-6.6.0rc2/src/opengeodeweb_back/routes/create/schemas/edged_curve.py +23 -0
  9. {opengeodeweb_back-6.6.0rc1 → opengeodeweb_back-6.6.0rc2}/tests/test_create_routes.py +34 -0
  10. opengeodeweb_back-6.6.0rc1/src/opengeodeweb_back/routes/create/schemas/__init__.py +0 -1
  11. {opengeodeweb_back-6.6.0rc1 → opengeodeweb_back-6.6.0rc2}/LICENSE +0 -0
  12. {opengeodeweb_back-6.6.0rc1 → opengeodeweb_back-6.6.0rc2}/README.md +0 -0
  13. {opengeodeweb_back-6.6.0rc1 → opengeodeweb_back-6.6.0rc2}/requirements.txt +0 -0
  14. {opengeodeweb_back-6.6.0rc1 → opengeodeweb_back-6.6.0rc2}/setup.cfg +0 -0
  15. {opengeodeweb_back-6.6.0rc1 → opengeodeweb_back-6.6.0rc2}/src/OpenGeodeWeb_Back.egg-info/dependency_links.txt +0 -0
  16. {opengeodeweb_back-6.6.0rc1 → opengeodeweb_back-6.6.0rc2}/src/OpenGeodeWeb_Back.egg-info/entry_points.txt +0 -0
  17. {opengeodeweb_back-6.6.0rc1 → opengeodeweb_back-6.6.0rc2}/src/OpenGeodeWeb_Back.egg-info/requires.txt +0 -0
  18. {opengeodeweb_back-6.6.0rc1 → opengeodeweb_back-6.6.0rc2}/src/OpenGeodeWeb_Back.egg-info/top_level.txt +0 -0
  19. {opengeodeweb_back-6.6.0rc1 → opengeodeweb_back-6.6.0rc2}/src/opengeodeweb_back/__init__.py +0 -0
  20. {opengeodeweb_back-6.6.0rc1 → opengeodeweb_back-6.6.0rc2}/src/opengeodeweb_back/app.py +0 -0
  21. {opengeodeweb_back-6.6.0rc1 → opengeodeweb_back-6.6.0rc2}/src/opengeodeweb_back/app_config.py +0 -0
  22. {opengeodeweb_back-6.6.0rc1 → opengeodeweb_back-6.6.0rc2}/src/opengeodeweb_back/geode_functions.py +0 -0
  23. {opengeodeweb_back-6.6.0rc1 → opengeodeweb_back-6.6.0rc2}/src/opengeodeweb_back/geode_objects/__init__.py +0 -0
  24. {opengeodeweb_back-6.6.0rc1 → opengeodeweb_back-6.6.0rc2}/src/opengeodeweb_back/geode_objects/geode_brep.py +0 -0
  25. {opengeodeweb_back-6.6.0rc1 → opengeodeweb_back-6.6.0rc2}/src/opengeodeweb_back/geode_objects/geode_cross_section.py +0 -0
  26. {opengeodeweb_back-6.6.0rc1 → opengeodeweb_back-6.6.0rc2}/src/opengeodeweb_back/geode_objects/geode_edged_curve2d.py +0 -0
  27. {opengeodeweb_back-6.6.0rc1 → opengeodeweb_back-6.6.0rc2}/src/opengeodeweb_back/geode_objects/geode_edged_curve3d.py +0 -0
  28. {opengeodeweb_back-6.6.0rc1 → opengeodeweb_back-6.6.0rc2}/src/opengeodeweb_back/geode_objects/geode_graph.py +0 -0
  29. {opengeodeweb_back-6.6.0rc1 → opengeodeweb_back-6.6.0rc2}/src/opengeodeweb_back/geode_objects/geode_grid2d.py +0 -0
  30. {opengeodeweb_back-6.6.0rc1 → opengeodeweb_back-6.6.0rc2}/src/opengeodeweb_back/geode_objects/geode_grid3d.py +0 -0
  31. {opengeodeweb_back-6.6.0rc1 → opengeodeweb_back-6.6.0rc2}/src/opengeodeweb_back/geode_objects/geode_hybrid_solid3d.py +0 -0
  32. {opengeodeweb_back-6.6.0rc1 → opengeodeweb_back-6.6.0rc2}/src/opengeodeweb_back/geode_objects/geode_implicit_cross_section.py +0 -0
  33. {opengeodeweb_back-6.6.0rc1 → opengeodeweb_back-6.6.0rc2}/src/opengeodeweb_back/geode_objects/geode_implicit_structural_model.py +0 -0
  34. {opengeodeweb_back-6.6.0rc1 → opengeodeweb_back-6.6.0rc2}/src/opengeodeweb_back/geode_objects/geode_light_regular_grid2d.py +0 -0
  35. {opengeodeweb_back-6.6.0rc1 → opengeodeweb_back-6.6.0rc2}/src/opengeodeweb_back/geode_objects/geode_light_regular_grid3d.py +0 -0
  36. {opengeodeweb_back-6.6.0rc1 → opengeodeweb_back-6.6.0rc2}/src/opengeodeweb_back/geode_objects/geode_mesh.py +0 -0
  37. {opengeodeweb_back-6.6.0rc1 → opengeodeweb_back-6.6.0rc2}/src/opengeodeweb_back/geode_objects/geode_model.py +0 -0
  38. {opengeodeweb_back-6.6.0rc1 → opengeodeweb_back-6.6.0rc2}/src/opengeodeweb_back/geode_objects/geode_object.py +0 -0
  39. {opengeodeweb_back-6.6.0rc1 → opengeodeweb_back-6.6.0rc2}/src/opengeodeweb_back/geode_objects/geode_point_set2d.py +0 -0
  40. {opengeodeweb_back-6.6.0rc1 → opengeodeweb_back-6.6.0rc2}/src/opengeodeweb_back/geode_objects/geode_point_set3d.py +0 -0
  41. {opengeodeweb_back-6.6.0rc1 → opengeodeweb_back-6.6.0rc2}/src/opengeodeweb_back/geode_objects/geode_polygonal_surface2d.py +0 -0
  42. {opengeodeweb_back-6.6.0rc1 → opengeodeweb_back-6.6.0rc2}/src/opengeodeweb_back/geode_objects/geode_polygonal_surface3d.py +0 -0
  43. {opengeodeweb_back-6.6.0rc1 → opengeodeweb_back-6.6.0rc2}/src/opengeodeweb_back/geode_objects/geode_polyhedral_solid3d.py +0 -0
  44. {opengeodeweb_back-6.6.0rc1 → opengeodeweb_back-6.6.0rc2}/src/opengeodeweb_back/geode_objects/geode_raster_image2d.py +0 -0
  45. {opengeodeweb_back-6.6.0rc1 → opengeodeweb_back-6.6.0rc2}/src/opengeodeweb_back/geode_objects/geode_raster_image3d.py +0 -0
  46. {opengeodeweb_back-6.6.0rc1 → opengeodeweb_back-6.6.0rc2}/src/opengeodeweb_back/geode_objects/geode_regular_grid2d.py +0 -0
  47. {opengeodeweb_back-6.6.0rc1 → opengeodeweb_back-6.6.0rc2}/src/opengeodeweb_back/geode_objects/geode_regular_grid3d.py +0 -0
  48. {opengeodeweb_back-6.6.0rc1 → opengeodeweb_back-6.6.0rc2}/src/opengeodeweb_back/geode_objects/geode_section.py +0 -0
  49. {opengeodeweb_back-6.6.0rc1 → opengeodeweb_back-6.6.0rc2}/src/opengeodeweb_back/geode_objects/geode_solid_mesh3d.py +0 -0
  50. {opengeodeweb_back-6.6.0rc1 → opengeodeweb_back-6.6.0rc2}/src/opengeodeweb_back/geode_objects/geode_structural_model.py +0 -0
  51. {opengeodeweb_back-6.6.0rc1 → opengeodeweb_back-6.6.0rc2}/src/opengeodeweb_back/geode_objects/geode_surface_mesh2d.py +0 -0
  52. {opengeodeweb_back-6.6.0rc1 → opengeodeweb_back-6.6.0rc2}/src/opengeodeweb_back/geode_objects/geode_surface_mesh3d.py +0 -0
  53. {opengeodeweb_back-6.6.0rc1 → opengeodeweb_back-6.6.0rc2}/src/opengeodeweb_back/geode_objects/geode_tetrahedral_solid3d.py +0 -0
  54. {opengeodeweb_back-6.6.0rc1 → opengeodeweb_back-6.6.0rc2}/src/opengeodeweb_back/geode_objects/geode_triangulated_surface2d.py +0 -0
  55. {opengeodeweb_back-6.6.0rc1 → opengeodeweb_back-6.6.0rc2}/src/opengeodeweb_back/geode_objects/geode_triangulated_surface3d.py +0 -0
  56. {opengeodeweb_back-6.6.0rc1 → opengeodeweb_back-6.6.0rc2}/src/opengeodeweb_back/geode_objects/geode_vertex_set.py +0 -0
  57. {opengeodeweb_back-6.6.0rc1 → opengeodeweb_back-6.6.0rc2}/src/opengeodeweb_back/py.typed +0 -0
  58. {opengeodeweb_back-6.6.0rc1 → opengeodeweb_back-6.6.0rc2}/src/opengeodeweb_back/routes/blueprint_routes.py +0 -0
  59. {opengeodeweb_back-6.6.0rc1 → opengeodeweb_back-6.6.0rc2}/src/opengeodeweb_back/routes/create/schemas/point_set.json +0 -0
  60. {opengeodeweb_back-6.6.0rc1 → opengeodeweb_back-6.6.0rc2}/src/opengeodeweb_back/routes/create/schemas/point_set.py +0 -0
  61. {opengeodeweb_back-6.6.0rc1 → opengeodeweb_back-6.6.0rc2}/src/opengeodeweb_back/routes/schemas/__init__.py +0 -0
  62. {opengeodeweb_back-6.6.0rc1 → opengeodeweb_back-6.6.0rc2}/src/opengeodeweb_back/routes/schemas/allowed_files.json +0 -0
  63. {opengeodeweb_back-6.6.0rc1 → opengeodeweb_back-6.6.0rc2}/src/opengeodeweb_back/routes/schemas/allowed_files.py +0 -0
  64. {opengeodeweb_back-6.6.0rc1 → opengeodeweb_back-6.6.0rc2}/src/opengeodeweb_back/routes/schemas/allowed_objects.json +0 -0
  65. {opengeodeweb_back-6.6.0rc1 → opengeodeweb_back-6.6.0rc2}/src/opengeodeweb_back/routes/schemas/allowed_objects.py +0 -0
  66. {opengeodeweb_back-6.6.0rc1 → opengeodeweb_back-6.6.0rc2}/src/opengeodeweb_back/routes/schemas/cell_attribute_names.json +0 -0
  67. {opengeodeweb_back-6.6.0rc1 → opengeodeweb_back-6.6.0rc2}/src/opengeodeweb_back/routes/schemas/cell_attribute_names.py +0 -0
  68. {opengeodeweb_back-6.6.0rc1 → opengeodeweb_back-6.6.0rc2}/src/opengeodeweb_back/routes/schemas/edge_attribute_names.json +0 -0
  69. {opengeodeweb_back-6.6.0rc1 → opengeodeweb_back-6.6.0rc2}/src/opengeodeweb_back/routes/schemas/edge_attribute_names.py +0 -0
  70. {opengeodeweb_back-6.6.0rc1 → opengeodeweb_back-6.6.0rc2}/src/opengeodeweb_back/routes/schemas/export_project.json +0 -0
  71. {opengeodeweb_back-6.6.0rc1 → opengeodeweb_back-6.6.0rc2}/src/opengeodeweb_back/routes/schemas/export_project.py +0 -0
  72. {opengeodeweb_back-6.6.0rc1 → opengeodeweb_back-6.6.0rc2}/src/opengeodeweb_back/routes/schemas/geode_object_inheritance.json +0 -0
  73. {opengeodeweb_back-6.6.0rc1 → opengeodeweb_back-6.6.0rc2}/src/opengeodeweb_back/routes/schemas/geode_object_inheritance.py +0 -0
  74. {opengeodeweb_back-6.6.0rc1 → opengeodeweb_back-6.6.0rc2}/src/opengeodeweb_back/routes/schemas/geode_objects_and_output_extensions.json +0 -0
  75. {opengeodeweb_back-6.6.0rc1 → opengeodeweb_back-6.6.0rc2}/src/opengeodeweb_back/routes/schemas/geode_objects_and_output_extensions.py +0 -0
  76. {opengeodeweb_back-6.6.0rc1 → opengeodeweb_back-6.6.0rc2}/src/opengeodeweb_back/routes/schemas/geographic_coordinate_systems.json +0 -0
  77. {opengeodeweb_back-6.6.0rc1 → opengeodeweb_back-6.6.0rc2}/src/opengeodeweb_back/routes/schemas/geographic_coordinate_systems.py +0 -0
  78. {opengeodeweb_back-6.6.0rc1 → opengeodeweb_back-6.6.0rc2}/src/opengeodeweb_back/routes/schemas/import_project.json +0 -0
  79. {opengeodeweb_back-6.6.0rc1 → opengeodeweb_back-6.6.0rc2}/src/opengeodeweb_back/routes/schemas/import_project.py +0 -0
  80. {opengeodeweb_back-6.6.0rc1 → opengeodeweb_back-6.6.0rc2}/src/opengeodeweb_back/routes/schemas/inspect_file.json +0 -0
  81. {opengeodeweb_back-6.6.0rc1 → opengeodeweb_back-6.6.0rc2}/src/opengeodeweb_back/routes/schemas/inspect_file.py +0 -0
  82. {opengeodeweb_back-6.6.0rc1 → opengeodeweb_back-6.6.0rc2}/src/opengeodeweb_back/routes/schemas/kill.json +0 -0
  83. {opengeodeweb_back-6.6.0rc1 → opengeodeweb_back-6.6.0rc2}/src/opengeodeweb_back/routes/schemas/kill.py +0 -0
  84. {opengeodeweb_back-6.6.0rc1 → opengeodeweb_back-6.6.0rc2}/src/opengeodeweb_back/routes/schemas/missing_files.json +0 -0
  85. {opengeodeweb_back-6.6.0rc1 → opengeodeweb_back-6.6.0rc2}/src/opengeodeweb_back/routes/schemas/missing_files.py +0 -0
  86. {opengeodeweb_back-6.6.0rc1 → opengeodeweb_back-6.6.0rc2}/src/opengeodeweb_back/routes/schemas/ping.json +0 -0
  87. {opengeodeweb_back-6.6.0rc1 → opengeodeweb_back-6.6.0rc2}/src/opengeodeweb_back/routes/schemas/ping.py +0 -0
  88. {opengeodeweb_back-6.6.0rc1 → opengeodeweb_back-6.6.0rc2}/src/opengeodeweb_back/routes/schemas/polygon_attribute_names.json +0 -0
  89. {opengeodeweb_back-6.6.0rc1 → opengeodeweb_back-6.6.0rc2}/src/opengeodeweb_back/routes/schemas/polygon_attribute_names.py +0 -0
  90. {opengeodeweb_back-6.6.0rc1 → opengeodeweb_back-6.6.0rc2}/src/opengeodeweb_back/routes/schemas/polyhedron_attribute_names.json +0 -0
  91. {opengeodeweb_back-6.6.0rc1 → opengeodeweb_back-6.6.0rc2}/src/opengeodeweb_back/routes/schemas/polyhedron_attribute_names.py +0 -0
  92. {opengeodeweb_back-6.6.0rc1 → opengeodeweb_back-6.6.0rc2}/src/opengeodeweb_back/routes/schemas/save_viewable_file.json +0 -0
  93. {opengeodeweb_back-6.6.0rc1 → opengeodeweb_back-6.6.0rc2}/src/opengeodeweb_back/routes/schemas/save_viewable_file.py +0 -0
  94. {opengeodeweb_back-6.6.0rc1 → opengeodeweb_back-6.6.0rc2}/src/opengeodeweb_back/routes/schemas/texture_coordinates.json +0 -0
  95. {opengeodeweb_back-6.6.0rc1 → opengeodeweb_back-6.6.0rc2}/src/opengeodeweb_back/routes/schemas/texture_coordinates.py +0 -0
  96. {opengeodeweb_back-6.6.0rc1 → opengeodeweb_back-6.6.0rc2}/src/opengeodeweb_back/routes/schemas/upload_file.json +0 -0
  97. {opengeodeweb_back-6.6.0rc1 → opengeodeweb_back-6.6.0rc2}/src/opengeodeweb_back/routes/schemas/upload_file.py +0 -0
  98. {opengeodeweb_back-6.6.0rc1 → opengeodeweb_back-6.6.0rc2}/src/opengeodeweb_back/routes/schemas/vertex_attribute_names.json +0 -0
  99. {opengeodeweb_back-6.6.0rc1 → opengeodeweb_back-6.6.0rc2}/src/opengeodeweb_back/routes/schemas/vertex_attribute_names.py +0 -0
  100. {opengeodeweb_back-6.6.0rc1 → opengeodeweb_back-6.6.0rc2}/src/opengeodeweb_back/test_utils.py +0 -0
  101. {opengeodeweb_back-6.6.0rc1 → opengeodeweb_back-6.6.0rc2}/src/opengeodeweb_back/utils_functions.py +0 -0
  102. {opengeodeweb_back-6.6.0rc1 → opengeodeweb_back-6.6.0rc2}/tests/test_geode_functions.py +0 -0
  103. {opengeodeweb_back-6.6.0rc1 → opengeodeweb_back-6.6.0rc2}/tests/test_routes.py +0 -0
  104. {opengeodeweb_back-6.6.0rc1 → opengeodeweb_back-6.6.0rc2}/tests/test_utils_functions.py +0 -0
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.4
2
2
  Name: OpenGeodeWeb-Back
3
- Version: 6.6.0rc1
3
+ Version: 6.6.0rc2
4
4
  Summary: OpenGeodeWeb-Back is an open source framework that proposes handy python functions and wrappers for the OpenGeode ecosystem
5
5
  Author-email: Geode-solutions <team-web@geode-solutions.com>
6
6
  Project-URL: Homepage, https://github.com/Geode-solutions/OpenGeodeWeb-Back
@@ -4,7 +4,7 @@ build-backend = "setuptools.build_meta"
4
4
 
5
5
  [project]
6
6
  name = "OpenGeodeWeb-Back"
7
- version = "6.6.0-rc.1"
7
+ version = "6.6.0-rc.2"
8
8
  dynamic = ["dependencies"]
9
9
  authors = [{ name = "Geode-solutions", email = "team-web@geode-solutions.com" }]
10
10
  description = "OpenGeodeWeb-Back is an open source framework that proposes handy python functions and wrappers for the OpenGeode ecosystem"
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.4
2
2
  Name: OpenGeodeWeb-Back
3
- Version: 6.6.0rc1
3
+ Version: 6.6.0rc2
4
4
  Summary: OpenGeodeWeb-Back is an open source framework that proposes handy python functions and wrappers for the OpenGeode ecosystem
5
5
  Author-email: Geode-solutions <team-web@geode-solutions.com>
6
6
  Project-URL: Homepage, https://github.com/Geode-solutions/OpenGeodeWeb-Back
@@ -52,6 +52,8 @@ src/opengeodeweb_back/geode_objects/geode_vertex_set.py
52
52
  src/opengeodeweb_back/routes/blueprint_routes.py
53
53
  src/opengeodeweb_back/routes/create/blueprint_create.py
54
54
  src/opengeodeweb_back/routes/create/schemas/__init__.py
55
+ src/opengeodeweb_back/routes/create/schemas/edged_curve.json
56
+ src/opengeodeweb_back/routes/create/schemas/edged_curve.py
55
57
  src/opengeodeweb_back/routes/create/schemas/point_set.json
56
58
  src/opengeodeweb_back/routes/create/schemas/point_set.py
57
59
  src/opengeodeweb_back/routes/schemas/__init__.py
@@ -36,3 +36,29 @@ def point_set() -> flask.Response:
36
36
  pointset
37
37
  )
38
38
  return flask.make_response(result, 200)
39
+
40
+
41
+ @routes.route(
42
+ schemas_dict["edged_curve"]["route"],
43
+ methods=schemas_dict["edged_curve"]["methods"],
44
+ )
45
+ def edged_curve() -> flask.Response:
46
+ """Endpoint to create an edged curve in 3D space."""
47
+ json_data = utils_functions.validate_request(
48
+ flask.request, schemas_dict["edged_curve"]
49
+ )
50
+ params = schemas.EdgedCurve.from_dict(json_data)
51
+
52
+ edged_curve_obj = GeodeEdgedCurve3D()
53
+ builder = edged_curve_obj.builder()
54
+ builder.set_name(params.name)
55
+ for point in params.points:
56
+ builder.create_point(opengeode.Point3D([point.x, point.y, point.z]))
57
+
58
+ for edge in params.edges:
59
+ builder.create_edge_with_vertices(edge[0], edge[1])
60
+
61
+ result = utils_functions.generate_native_viewable_and_light_viewable_from_object(
62
+ edged_curve_obj
63
+ )
64
+ return flask.make_response(result, 200)
@@ -0,0 +1,2 @@
1
+ from .point_set import *
2
+ from .edged_curve import *
@@ -0,0 +1,38 @@
1
+ {
2
+ "route": "/edged_curve",
3
+ "methods": ["POST"],
4
+ "type": "object",
5
+ "properties": {
6
+ "name": {
7
+ "type": "string",
8
+ "minLength": 1
9
+ },
10
+ "points": {
11
+ "type": "array",
12
+ "items": {
13
+ "title": "EdgedCurvePoint",
14
+ "type": "object",
15
+ "properties": {
16
+ "x": { "type": "number" },
17
+ "y": { "type": "number" },
18
+ "z": { "type": "number" }
19
+ },
20
+ "required": ["x", "y", "z"],
21
+ "additionalProperties": false
22
+ },
23
+ "minItems": 2
24
+ },
25
+ "edges": {
26
+ "type": "array",
27
+ "items": {
28
+ "type": "array",
29
+ "items": { "type": "integer" },
30
+ "minItems": 2,
31
+ "maxItems": 2
32
+ },
33
+ "minItems": 1
34
+ }
35
+ },
36
+ "required": ["name", "points", "edges"],
37
+ "additionalProperties": false
38
+ }
@@ -0,0 +1,23 @@
1
+ from dataclasses_json import DataClassJsonMixin
2
+ from dataclasses import dataclass
3
+ from typing import List
4
+
5
+
6
+ @dataclass
7
+ class EdgedCurvePoint(DataClassJsonMixin):
8
+ def __post_init__(self) -> None:
9
+ print(self, flush=True)
10
+
11
+ x: float
12
+ y: float
13
+ z: float
14
+
15
+
16
+ @dataclass
17
+ class EdgedCurve(DataClassJsonMixin):
18
+ def __post_init__(self) -> None:
19
+ print(self, flush=True)
20
+
21
+ edges: List[List[int]]
22
+ name: str
23
+ points: List[EdgedCurvePoint]
@@ -14,6 +14,15 @@ def point_data() -> test_utils.JsonData:
14
14
  return {"name": "test_point", "points": [{"x": 1.0, "y": 2.0, "z": 3.0}]}
15
15
 
16
16
 
17
+ @pytest.fixture
18
+ def curve_data() -> test_utils.JsonData:
19
+ return {
20
+ "name": "test_curve",
21
+ "points": [{"x": 0.0, "y": 0.0, "z": 0.0}, {"x": 1.0, "y": 1.0, "z": 1.0}],
22
+ "edges": [[0, 1]],
23
+ }
24
+
25
+
17
26
  def test_create_point(client: FlaskClient, point_data: test_utils.JsonData) -> None:
18
27
  """Test the creation of a point with valid data."""
19
28
  route: str = "/opengeodeweb_back/create/point_set"
@@ -74,3 +83,28 @@ def test_create_point_with_invalid_data(client: FlaskClient) -> None:
74
83
  invalid_data = {"name": "invalid_point", "points": [{"y": 2.0, "z": 3.0}]}
75
84
  response = client.post(route, json=invalid_data)
76
85
  assert response.status_code == 400
86
+
87
+
88
+ def test_create_curve(client: FlaskClient, curve_data: test_utils.JsonData) -> None:
89
+ """Test the creation of a curve with valid data."""
90
+ route: str = "/opengeodeweb_back/create/edged_curve"
91
+
92
+ # Test with all required data
93
+ response = client.post(route, json=curve_data)
94
+ assert response.status_code == 200
95
+
96
+ # Verify response data
97
+ response_data = response.get_json()
98
+ assert "viewable_file" in response_data
99
+ assert "id" in response_data
100
+ assert "name" in response_data
101
+ assert "native_file" in response_data
102
+ assert "viewer_type" in response_data
103
+ assert "geode_object_type" in response_data
104
+
105
+ assert response_data["name"] == curve_data["name"]
106
+ assert response_data["viewer_type"] == "mesh"
107
+ assert response_data["geode_object_type"] == "EdgedCurve3D"
108
+
109
+ # Test with missing parameters
110
+ test_utils.test_route_wrong_params(client, route, lambda: copy.deepcopy(curve_data))
@@ -1 +0,0 @@
1
- from .point_set import *