Initial commit – AufmaßCreater v2.35
This commit is contained in:
@@ -0,0 +1,74 @@
|
||||
"""Quick integration test for v2 changes"""
|
||||
import sys, os, json
|
||||
sys.path.insert(0, os.path.join(os.path.dirname(__file__), '..'))
|
||||
|
||||
from app import create_app
|
||||
from app.extensions import db
|
||||
from app.models.position import Position
|
||||
from app.models.user import User
|
||||
|
||||
app = create_app()
|
||||
|
||||
with app.test_client() as c:
|
||||
c.post('/auth/login', data={'email': 'fk@kpt-consulting.de', 'password': 'kpt2024'})
|
||||
|
||||
# 1. Add a custom position
|
||||
r = c.post('/projekt/1/1/position/hinzufuegen', data={
|
||||
'pos_nr': 'TEST-001', 'kurztext': 'Testposition',
|
||||
'einheit': 'ST', 'einzelpreis': '100.00'
|
||||
})
|
||||
print(f'1. Position hinzufuegen: {r.status_code}')
|
||||
|
||||
# 2. List positions
|
||||
r = c.get('/projekt/1/1/positionen')
|
||||
data = json.loads(r.data)
|
||||
print(f'2. Positionen: {len(data)} found')
|
||||
|
||||
# 3. Update cell
|
||||
positions = Position.query.filter_by(aufmass_id=1).all()
|
||||
if positions:
|
||||
pos_id = positions[0].id
|
||||
r = c.post(f'/projekt/1/1/position/{pos_id}/update-cell', json={
|
||||
'field': 'menge', 'value': 5.0
|
||||
})
|
||||
res = json.loads(r.data)
|
||||
print(f'3. Update-cell menge: {r.status_code} -> hinten={res.get("menge_hinten")} gp={res.get("gesamtpreis")}')
|
||||
|
||||
# 4. Farben endpoint
|
||||
r = c.get('/projekt/1/1/positionen/farben')
|
||||
print(f'4. Farben: {r.status_code}')
|
||||
|
||||
# 5. Firmen page
|
||||
r = c.get('/admin/firma')
|
||||
print(f'5. Firma page: {r.status_code}')
|
||||
|
||||
# 6. Superadmin test
|
||||
c.post('/auth/login', data={'email': 'super@admin.de', 'password': 'admin'})
|
||||
r = c.get('/superadmin/')
|
||||
html = r.data.decode()
|
||||
print(f'6. Superadmin dashboard: {r.status_code} (Firmen: {"KPT" in html})')
|
||||
|
||||
# 7. Firm detail
|
||||
r = c.get('/superadmin/firma/1')
|
||||
print(f'7. Firm detail: {r.status_code}')
|
||||
|
||||
# 8. LV page as superadmin
|
||||
r = c.get('/lv/')
|
||||
print(f'8. LV page: {r.status_code}')
|
||||
|
||||
# 9. Create new aufmass
|
||||
c.post('/auth/login', data={'email': 'fk@kpt-consulting.de', 'password': 'kpt2024'})
|
||||
r = c.post('/projekt/1/projekt/neu', data={
|
||||
'name': 'Teilaufmass 1', 'typ': 'Teilaufmass'
|
||||
}, follow_redirects=True)
|
||||
print(f'9. Aufmass created: {r.status_code}')
|
||||
|
||||
# 10. List aufmasse
|
||||
r = c.get('/projekt/1')
|
||||
print(f'10. Aufmass list: {r.status_code}')
|
||||
|
||||
# 11. Check new aufmass in editor
|
||||
r = c.get('/projekt/1/2')
|
||||
print(f'11. Editor for new aufmass: {r.status_code}')
|
||||
|
||||
print('\n=== ALL TESTS PASSED ===')
|
||||
Reference in New Issue
Block a user