dragndrop_hld/TEST_RESULTS.md

226 lines
5.7 KiB
Markdown
Raw Permalink Normal View History

# Upload Test Results - Map ID 16950
**Test Date:** 2025-12-09
**Test Type:** First 10 records per shapefile layer
**Map ID:** 16950
## Summary
| Layer | Records Attempted | Records Uploaded | Status |
|-------|-------------------|------------------|--------|
| poles.shp | 10 | 10 | ✅ SUCCESS |
| segments.shp | 10 | 10 | ✅ SUCCESS |
| sites.shp | 10 | 10 | ✅ SUCCESS |
| access_points.shp | 10 | 0 | ❌ FAILED |
| network_elements.shp | 10 | 0 | ❌ FAILED |
| splicing.shp | 10 | 0 | ❌ FAILED |
| cabinet_boundaries.shp | 3 | 0 | ❌ FAILED |
| cables.shp | 3 | 0 | ❌ FAILED |
| parcels.shp | 3 | 0 | ❌ FAILED |
| permits.shp | 10 | 0 | ❌ FAILED |
**Overall:** 30 out of 59 records uploaded successfully (51%)
## Successful Uploads
### ✅ Poles (10/10)
- All records uploaded successfully
- Field mapping working correctly
- No errors
### ✅ Segments (10/10)
- All records uploaded successfully
- TypeId mapping working correctly
- No errors
### ✅ Sites (10/10)
- All records uploaded successfully
- Address fields mapping correctly
- State lookup working
- No errors
## Failed Uploads
### ❌ Access Points (0/10)
**Error:** API returns 500 error
```
PHP Warning: Undefined array key "isLocked"
```
**Root Cause:** The API expects `locked` field, but the uploader is sending `isLocked`
**Fix Required:** Change field name in `_upload_access_points()` method
```python
# Current (wrong):
ap_data = {
"isLocked": 0 # ❌ Wrong field name
}
# Should be:
ap_data = {
"locked": 0 # ✅ Correct field name
}
```
**File:** `/home/ahall/Sandbox/dragnddrop/backend/verofy_uploader.py:407`
---
### ❌ Network Elements (0/10)
**Error:** Silent failure (returns 500 error but not logged in debug output)
**Root Cause:** API likely rejecting due to missing or incorrect field
**Status:** Code was recently updated with correct typeId mapping - may need testing with debug output enabled
**File:** `/home/ahall/Sandbox/dragnddrop/backend/verofy_uploader.py:452-511`
---
### ❌ Splicing (0/10)
**Error:** Silent failure (returns 500 error but not logged in debug output)
**Root Cause:** API likely rejecting due to missing or incorrect field
**Status:** Code was recently updated with correct typeId mapping - may need testing with debug output enabled
**File:** `/home/ahall/Sandbox/dragnddrop/backend/verofy_uploader.py:537-598`
---
### ❌ Cabinet Boundaries (0/3)
**Error:** API returns 500 error
```
Database Exception: Field 'metric' doesn't have a default value
```
**Root Cause:** The `mapobject` table requires a `metric` field that's not being provided
**Fix Required:** Add `metric` field to info object data
```python
info_data = {
"mapProjectId": int(map_id),
"name": str(row.get('Name', f'Cabinet-Boundary-{idx}')),
"mapinfoobjecttypeId": 3,
"data": data,
"color": "#ffffff",
"alpha": "0.40",
"metric": 0 # ✅ Add this required field
}
```
**File:** `/home/ahall/Sandbox/dragnddrop/backend/verofy_uploader.py:549-563`
---
### ❌ Cables (0/3)
**Error:** API returns 500 error
```
Database Exception: Field 'metric' doesn't have a default value
```
**Root Cause:** Same as cabinet_boundaries - missing `metric` field
**Fix Required:** Add `metric` field to info object data
```python
info_data = {
"mapProjectId": int(map_id),
"name": str(row.get('Name', f'Cable-{idx}')),
"mapinfoobjecttypeId": 2,
"data": data,
"color": "#ffffff",
"alpha": "1.00",
"metric": 0 # ✅ Add this required field
}
```
**File:** `/home/ahall/Sandbox/dragnddrop/backend/verofy_uploader.py:591-598`
---
### ❌ Parcels (0/3)
**Error:** API returns 500 error
```
Database Exception: Field 'metric' doesn't have a default value
```
**Root Cause:** Same as cabinet_boundaries - missing `metric` field
**Fix Required:** Add `metric` field to info object data
```python
info_data = {
"mapProjectId": int(map_id),
"name": str(row.get('Name', f'Parcel-{idx}')),
"mapinfoobjecttypeId": 3,
"data": data,
"color": "#ffffff",
"alpha": "0.40",
"objectgroup": str(row['Group 1']),
"objectgroup2": str(row['Group 2']),
"metric": 0 # ✅ Add this required field
}
```
**File:** `/home/ahall/Sandbox/dragnddrop/backend/verofy_uploader.py:634-641`
---
### ❌ Permits (0/10)
**Error:** API returns 422 validation error
```
Permit Status cannot be blank.
Permit Entity Type cannot be blank.
Permit ULR Type cannot be blank.
```
**Root Cause:** Missing required fields in permit data
**Fix Required:** Add required fields with default values
```python
permit_data = {
"mapProjectId": int(map_id),
"name": str(name),
"poly": poly,
"mappermitstatusId": 1, # ✅ Add: Default to status 1
"mappermitentitytypeId": 1, # ✅ Add: Default to entity type 1
"mappermitulrtypeId": 1 # ✅ Add: Default to ULR type 1
}
```
**Note:** Need to research the correct default values for these IDs from the API references.
**File:** `/home/ahall/Sandbox/dragnddrop/backend/verofy_uploader.py:699-703`
## Action Items
1. **CRITICAL - Fix Access Points**
- Change `isLocked` to `locked` field name
- Should result in immediate success
2. **HIGH - Fix Info Objects (Cabinet Boundaries, Cables, Parcels)**
- Add `metric: 0` field to all info object creations
- Should result in immediate success
3. **HIGH - Fix Permits**
- Research correct reference IDs for permit types
- Add required fields with appropriate defaults
4. **MEDIUM - Debug Network Elements & Splicing**
- Add debug output (like access_points and sites have)
- Verify typeId mapping is working
- Check for any other missing required fields
## Next Steps
1. Apply the fixes identified above
2. Re-run test with same data to map 16950
3. Verify all layers upload successfully
4. Document any additional issues found