Skip to content

Commit 1684502

Browse files
authored
Merge pull request #806 from OpenSPP/ken/code_cleanup
Code clean-up
2 parents b5f51b9 + 81b4f09 commit 1684502

File tree

13 files changed

+226
-158
lines changed

13 files changed

+226
-158
lines changed

g2p_connect_demo/__manifest__.py

Lines changed: 0 additions & 9 deletions
Original file line numberDiff line numberDiff line change
@@ -16,33 +16,24 @@
1616
"g2p_registry_group",
1717
"g2p_registry_membership",
1818
"g2p_programs",
19-
# "g2p_bank",
2019
"spp_custom_field",
21-
# "spp_custom_fields_ui",
2220
"spp_entitlement_cash",
23-
# "spp_dashboard",
2421
"spp_idpass",
2522
"spp_idqueue",
2623
"spp_area",
27-
# "spp_change_request",
2824
"spp_event_data",
2925
"spp_service_points",
3026
"theme_openspp_muk",
31-
# "spp_pos",
32-
# "spp_sms",
3327
"queue_job",
34-
# "spp_change_request_add_children_demo",
3528
"spp_custom_filter",
3629
"product",
3730
"stock",
3831
],
3932
"external_dependencies": {"python": ["faker"]},
4033
"data": [
4134
"security/ir.model.access.csv",
42-
# "data/users_data.xml",
4335
"data/sample_data.xml",
4436
"views/generate_data_view.xml",
45-
# "views/generate_change_request_data_view.xml",
4637
"views/groups_view.xml",
4738
"views/individuals_view.xml",
4839
],

g2p_connect_demo/models/__init__.py

Lines changed: 0 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -3,6 +3,5 @@
33
from . import registrant
44
from . import generate_group
55

6-
# from . import generate_change_request
76
from . import individual
87
from . import group

g2p_connect_demo/models/generate_change_request.py

Lines changed: 4 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -72,6 +72,8 @@ def _generate_sample_data(self, **kwargs):
7272
res_id = kwargs.get("res_id")
7373
res = self.browse(res_id)
7474

75+
res_partner_model_obj = self.env["res.partner"]
76+
7577
registrants = kwargs.get("registrant_ids")
7678
membership_kinds = kwargs.get("membership_kinds")
7779
num_crs = min(res.num_crs, 1000)
@@ -83,7 +85,7 @@ def _generate_sample_data(self, **kwargs):
8385
registrant_id = random.choice(registrants)
8486

8587
# Get applicants based on registrant_id
86-
registrant = self.env["res.partner"].search([("id", "=", registrant_id)])[0]
88+
registrant = res_partner_model_obj.search([("id", "=", registrant_id)])[0]
8789
if registrant.lang:
8890
lang = registrant.lang
8991
else:
@@ -95,7 +97,7 @@ def _generate_sample_data(self, **kwargs):
9597
applicant_id = random.choice(applicant_ids)
9698

9799
# TODO: Fix error in phone number format
98-
applicant = self.env["res.partner"].search([("id", "=", applicant_id)])
100+
applicant = res_partner_model_obj.search([("id", "=", applicant_id)])
99101
if applicant.phone:
100102
applicant_phone = applicant.phone
101103
else:
@@ -126,7 +128,6 @@ def _generate_sample_data(self, **kwargs):
126128
date_start = datetime.datetime.now() - relativedelta(years=100)
127129
date_end = datetime.datetime.now()
128130
birthdate = fake.date_between_dates(date_start=date_start, date_end=date_end).isoformat()
129-
# phone = fake.phone_number()
130131
uid_number = str(random.randint(100000000000, 999999999999))
131132
kind = random.choice(membership_kinds)
132133
applicant_relation = random.choice(["father", "mother", "grandfather"] * 50)

g2p_connect_demo/models/generate_group.py

Lines changed: 23 additions & 22 deletions
Original file line numberDiff line numberDiff line change
@@ -62,15 +62,16 @@ def _generate_sample_data(self, **kwargs):
6262
res = self.browse(res_id)
6363
fake = create_faker(res.locale)
6464

65-
# sex_choice_range = ["Female", "Male"] * 50 + ["Other"]
66-
sex_choices = self.env["gender.type"].search([]).mapped("value")
67-
sex_choice_range = sex_choices * 50
65+
res_partner_model_obj = self.env["res.partner"]
66+
g2p_group_membership_model_obj = self.env["g2p.group.membership"]
67+
68+
gender_choices = self.env["gender.type"].search([]).mapped("value")
69+
gender_choice_range = gender_choices * 50
6870
age_group_range = ["A", "C", "N"] * 2 + ["E"]
6971
group_size_range = list(range(1, 2)) * 2 + list(range(3, 5)) * 4 + list(range(6, 8))
7072

7173
group_membership_kind_head_id = self.env.ref("g2p_registry_membership.group_membership_kind_head").id
7274
group_kind_household_id = self.env.ref("g2p_registry_group.group_kind_household").id
73-
# group_kind_family_id = self.env.ref("g2p_registry_group.group_kind_family").id
7475

7576
num_groups = min(res.num_groups, 1000)
7677

@@ -98,7 +99,7 @@ def _generate_sample_data(self, **kwargs):
9899
head = res._generate_individual_data(
99100
fake,
100101
last_name,
101-
sex_choice_range,
102+
gender_choice_range,
102103
["A", "E"],
103104
registration_date,
104105
bank_id,
@@ -138,7 +139,7 @@ def _generate_sample_data(self, **kwargs):
138139
"bank_ids": bank_ids,
139140
}
140141

141-
create_group_id = self.env["res.partner"].create(group)
142+
create_group_id = res_partner_model_obj.create(group)
142143

143144
head["id"] = f"{group_id}-0"
144145
members = [head]
@@ -147,7 +148,7 @@ def _generate_sample_data(self, **kwargs):
147148
data = res._generate_individual_data(
148149
fake,
149150
last_name,
150-
sex_choice_range,
151+
gender_choice_range,
151152
age_group_range,
152153
registration_date,
153154
bank_id,
@@ -169,8 +170,8 @@ def _generate_sample_data(self, **kwargs):
169170
if is_head:
170171
member.pop("is_head", None)
171172
member.pop("is_principal_recipient", None)
172-
create_member_id = self.env["res.partner"].create(member)
173-
self.env["g2p.group.membership"].create(
173+
create_member_id = res_partner_model_obj.create(member)
174+
g2p_group_membership_model_obj.create(
174175
{
175176
"group": create_group_id.id,
176177
"individual": create_member_id.id,
@@ -186,8 +187,8 @@ def _generate_sample_data(self, **kwargs):
186187
elif is_principal_recipient:
187188
member.pop("is_head", None)
188189
member.pop("is_principal_recipient", None)
189-
create_member_id = self.env["res.partner"].create(member)
190-
self.env["g2p.group.membership"].create(
190+
create_member_id = res_partner_model_obj.create(member)
191+
g2p_group_membership_model_obj.create(
191192
{
192193
"group": create_group_id.id,
193194
"individual": create_member_id.id,
@@ -196,8 +197,8 @@ def _generate_sample_data(self, **kwargs):
196197
)
197198

198199
else:
199-
create_member_id = self.env["res.partner"].create(member)
200-
self.env["g2p.group.membership"].create(
200+
create_member_id = res_partner_model_obj.create(member)
201+
g2p_group_membership_model_obj.create(
201202
{
202203
"group": create_group_id.id,
203204
"individual": create_member_id.id,
@@ -210,8 +211,6 @@ def _generate_sample_data(self, **kwargs):
210211
)
211212
_logger.info(msg)
212213
return {"result": msg, "res_model": self._name, "res_ids": [res_id]}
213-
# _logger.info("-" * 80)
214-
# _logger.info(json.dumps({"group": group, "members": members}, indent=4))
215214

216215
def mark_as_done(self):
217216
self.update({"state": "generate"})
@@ -220,14 +219,14 @@ def _generate_individual_data(
220219
self,
221220
fake,
222221
last_name,
223-
sex_choice_range,
222+
gender_choice_range,
224223
age_group_range,
225224
registration_date,
226225
bank_id,
227226
):
228-
sex = random.choice(sex_choice_range)
227+
gender = random.choice(gender_choice_range)
229228
age_group = random.choice(age_group_range)
230-
first_name = fake.first_name_male() if sex == "Male" else fake.first_name_female()
229+
first_name = fake.first_name_male() if gender == "Male" else fake.first_name_female()
231230
different_last_name = random.randint(0, 100) < 10
232231
if age_group == "N":
233232
date_start = datetime.datetime.now() - relativedelta(years=1)
@@ -269,22 +268,24 @@ def _generate_individual_data(
269268
registration_date = fake.date_between_dates(date_start=dob, date_end=datetime.datetime.now()).isoformat()
270269
dob = dob.isoformat()
271270

272-
fullname = f"{first_name} {last_name}"
271+
full_name = f"{first_name} {last_name}"
273272
bank_ids = []
274273
phone = ""
275-
# Do not give bank account to kids
274+
275+
# Do not assign bank accounts to children
276276
if age_group != "C":
277277
val = {
278278
"bank_id": bank_id.id,
279279
"acc_number": str(random.randint(1, 999999999)),
280280
}
281281
bank_ids.append([0, 0, val])
282282
phone = fake.phone_number()
283+
283284
data = {
284-
"name": fullname,
285+
"name": full_name,
285286
"given_name": first_name,
286287
"family_name": last_name,
287-
"gender": sex,
288+
"gender": gender,
288289
"birthdate": dob,
289290
"is_registrant": True,
290291
"is_group": False,

spp_api/controllers/main.py

Lines changed: 0 additions & 18 deletions
Original file line numberDiff line numberDiff line change
@@ -28,10 +28,6 @@ class OAS(http.Controller):
2828
)
2929
def index(self, **params):
3030
primary_name = params.get("urls.primaryName")
31-
# swagger_settings = {
32-
# "urls": self._get_api_urls(),
33-
# "urls.primaryName": primary_name,
34-
# }
3531

3632
values = {
3733
"urls": json.dumps(self._get_api_urls()),
@@ -56,20 +52,6 @@ def _get_api_urls(self):
5652
}
5753
)
5854

59-
# services_registry = _rest_services_databases.get(request.env.cr.dbname, {})
60-
# api_urls = []
61-
# for rest_root_path, spec in list(services_registry.items()):
62-
# collection_path = rest_root_path[1:-1] # remove '/'
63-
# collection_name = spec["collection_name"]
64-
# for service in self._get_service_in_collection(collection_name):
65-
# api_urls.append(
66-
# {
67-
# "name": "{}: {}".format(collection_path, service._usage),
68-
# "url": "/api-docs/%s/%s.json"
69-
# % (collection_path, service._usage),
70-
# }
71-
# )
72-
# api_urls = sorted(api_urls, key=lambda k: k["name"])
7355
return api_urls
7456

7557
@http.route(

spp_api/controllers/pinguin.py

Lines changed: 20 additions & 21 deletions
Original file line numberDiff line numberDiff line change
@@ -373,29 +373,28 @@ def _create_log_record(
373373
:returns: New 'openapi.log' record.
374374
:rtype: ..models.openapi_log.Log
375375
"""
376-
if True: # just to keep original indent
377-
log_data = {
378-
"namespace_id": namespace_id,
379-
"request": "%s | %s | %d" % (user_request.url, user_request.method, user_response.status_code),
380-
"request_data": None,
381-
"response_data": None,
382-
}
383-
if namespace_log_request == "debug":
384-
log_data["request_data"] = user_request.__dict__
385-
elif namespace_log_request == "info":
386-
log_data["request_data"] = user_request.__dict__
387-
for k in ["form", "files"]:
388-
try:
389-
del log_data["request_data"][k]
390-
except KeyError:
391-
_logger.debug("Key %s not found in request_data" % k)
376+
log_data = {
377+
"namespace_id": namespace_id,
378+
"request": "%s | %s | %d" % (user_request.url, user_request.method, user_response.status_code),
379+
"request_data": None,
380+
"response_data": None,
381+
}
382+
if namespace_log_request == "debug":
383+
log_data["request_data"] = user_request.__dict__
384+
elif namespace_log_request == "info":
385+
log_data["request_data"] = user_request.__dict__
386+
for k in ["form", "files"]:
387+
try:
388+
del log_data["request_data"][k]
389+
except KeyError:
390+
_logger.debug("Key %s not found in request_data" % k)
392391

393-
if namespace_log_response == "debug":
394-
log_data["response_data"] = user_response.__dict__
395-
elif namespace_log_response == "error" and user_response.status_code > 400:
396-
log_data["response_data"] = user_response.__dict__
392+
if namespace_log_response == "debug":
393+
log_data["response_data"] = user_response.__dict__
394+
elif namespace_log_response == "error" and user_response.status_code > 400:
395+
log_data["response_data"] = user_response.__dict__
397396

398-
return env["spp_api.log"].create(log_data)
397+
return env["spp_api.log"].create(log_data)
399398

400399

401400
# Patched http route

spp_api/tests/__init__.py

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -7,3 +7,4 @@
77
from . import test_res_users
88
from . import test_ir_model_fields
99
from . import test_apijsonrequest
10+
from . import test_main_controller
Lines changed: 66 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,66 @@
1+
from odoo.tests import tagged
2+
from odoo.tests.common import HttpCase
3+
4+
5+
@tagged("post_install", "-at_install", "test_main_controller")
6+
class TestOASController(HttpCase):
7+
@classmethod
8+
def setUpClass(cls):
9+
super().setUpClass()
10+
# Create test namespace
11+
cls.test_namespace = cls.env["spp_api.namespace"].create(
12+
{"name": "test", "version_name": "1.0", "active": True, "token": "test_token"}
13+
)
14+
15+
def setUp(self):
16+
super().setUp()
17+
# Set up request environment
18+
self.authenticate("admin", "admin")
19+
self.url_open("/") # This initializes the request object
20+
21+
def test_01_index(self):
22+
"""Test the index method of OAS controller"""
23+
# Test the index endpoint directly
24+
response = self.url_open("/doc/api-docs/index.html")
25+
self.assertEqual(response.status_code, 200)
26+
27+
def test_02_get_api_urls(self):
28+
"""Test the _get_api_urls method of OAS controller"""
29+
# Test the endpoint that uses _get_api_urls
30+
response = self.url_open("/doc/api-docs/index.html")
31+
self.assertEqual(response.status_code, 200)
32+
33+
# Verify the namespace is accessible
34+
namespace = self.env["spp_api.namespace"].sudo().search([("name", "=", "test"), ("version_name", "=", "1.0")])
35+
self.assertTrue(namespace)
36+
self.assertTrue(namespace.active)
37+
38+
def test_03_oas_json_spec_download(self):
39+
"""Test the oas_json_spec_download method of OAS controller"""
40+
# Test with valid namespace and token
41+
response = self.url_open(f"/api/test/1.0/swagger.json?token={self.test_namespace.token}")
42+
self.assertEqual(response.status_code, 200)
43+
self.assertEqual(response.headers["Content-Type"], "application/json")
44+
45+
# Test with invalid namespace
46+
response = self.url_open("/api/invalid/1.0/swagger.json?token=test_token", allow_redirects=False)
47+
self.assertEqual(response.status_code, 404)
48+
49+
# Test with invalid token
50+
response = self.url_open("/api/test/1.0/swagger.json?token=invalid_token", allow_redirects=False)
51+
self.assertEqual(response.status_code, 403)
52+
53+
def test_04_oas_document(self):
54+
"""Test the oas_document method of OAS controller"""
55+
# Test with valid namespace and token
56+
response = self.url_open(f"/api/swagger-doc/test/1.0?token={self.test_namespace.token}")
57+
self.assertEqual(response.status_code, 200)
58+
self.assertTrue(response.headers["Content-Type"].startswith("text/html"))
59+
60+
# Test with invalid namespace
61+
response = self.url_open("/api/swagger-doc/invalid/1.0?token=test_token", allow_redirects=False)
62+
self.assertEqual(response.status_code, 404)
63+
64+
# Test with invalid token
65+
response = self.url_open("/api/swagger-doc/test/1.0?token=invalid_token", allow_redirects=False)
66+
self.assertEqual(response.status_code, 403)

spp_farmer_registry_demo/models/generate_farmer_data.py

Lines changed: 5 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -110,13 +110,13 @@ def _generate_sample_data(self, **kwargs):
110110
fake = create_faker(res.locale)
111111

112112
# Get available gender field selections
113-
sex_choices = self.env["gender.type"].search([]).mapped("id")
114-
sex_choice_range = sex_choices * 50
113+
gender_choices = self.env["gender.type"].search([]).mapped("id")
114+
gender_choice_range = gender_choices * 50
115115

116116
num_groups = min(num_groups, self.GROUPS_PER_BATCH)
117117

118118
for i in range(0, num_groups):
119-
group_id = res._generate_group_data(i, fake, sex_choice_range, kind_farm_id)
119+
group_id = res._generate_group_data(i, fake, gender_choice_range, kind_farm_id)
120120

121121
land_record_id = res._generate_land_record_record(group_id, res.locale)
122122
group_id.farm_land_rec_id = land_record_id.id
@@ -178,8 +178,8 @@ def _generate_sample_data(self, **kwargs):
178178

179179
return {"result": msg, "res_model": self._name, "res_ids": [res.id]}
180180

181-
def _generate_group_data(self, index, fake, sex_choice_range, kind_id):
182-
sex = random.choice(sex_choice_range)
181+
def _generate_group_data(self, index, fake, gender_choice_range, kind_id):
182+
sex = random.choice(gender_choice_range)
183183
last_name = fake.last_name()
184184
first_name = fake.first_name_male() if sex == "Male" else fake.first_name_female()
185185
addl_name = fake.first_name_male() if sex == "Male" else fake.first_name_female()

0 commit comments

Comments
 (0)