Skip to content

Conversation

@cyrillkuettel
Copy link
Contributor

Commit message

Translator Directory: Makes editor able to view tickets of their UserGroup.

TYPE: Feature
LINK: OGC-2827

Checklist

  • I have performed a self-review of my code

@linear
Copy link

linear bot commented Feb 10, 2026

@codecov
Copy link

codecov bot commented Feb 10, 2026

❌ 1 Tests Failed:

Tests completed Failed Passed Skipped
2623 1 2622 17
View the top 1 failed test(s) by shortest run time
tests/onegov/translator_directory/test_views.py::test_export_time_reports
Stack Traces | 5.38s run time
client = <tests.onegov.translator_directory.conftest.Client object at 0x7f3c4a75f290>

    def test_export_time_reports(client: Client) -> None:
        """Test exporting confirmed time reports as CSV."""
        session = client.app.session()
        create_languages(session)
        translators = TranslatorCollection(client.app)
        translator = translators.add(
            first_name='Test',
            last_name='Translator',
            admission='certified',
            email='[email protected]',
            drive_distance=35.0,
        )
        translator.pers_id = 12345
        translator_id = translator.id
    
        user_group_collection = UserGroupCollection(session)
        user_group = user_group_collection.add(
            name='migrationsamt_und_passbuero'
        )
        user_group.meta = {
            'finanzstelle': 'migrationsamt_und_passbuero',
            'accountant_emails': ['[email protected]'],
        }
        transaction.commit()
    
        client.login_member()
        page = client.get(f'/translator/{translator_id}')
        page = page.click('Zeit erfassen')
        page.form['assignment_type'] = 'telephonic'
        page.form['finanzstelle'] = 'migrationsamt_und_passbuero'
        page.form['start_date'] = '2025-01-15'
        page.form['start_time'] = '10:00'
        page.form['end_date'] = '2025-01-15'
        page.form['end_time'] = '11:30'
        page.form['case_number'] = 'EXPORT-TEST'
        page = page.form.submit().follow()
    
        report = (
            session.query(TranslatorTimeReport)
            .filter_by(translator_id=translator_id)
            .first()
        )
        assert report is not None
        report_id = report.id
        assert report.status == 'pending'
        assert report.exported is False
    
        # Claim and accept the time report to confirm it
        client.login_editor()
        ticket = report.get_ticket(session)
        assert ticket is not None
        ticket_url = (
            f'/ticket/{ticket.handler_code}/{ticket.id.hex}'
        )
        ticket_page = client.get(ticket_url)
        ticket_page = ticket_page.click('Ticket annehmen').follow()
        accept_url = ticket_page.pyquery(
            'a.accept-link'
        )[0].attrib['ic-post-to']
        client.post(accept_url)
    
        session.expire_all()
        report = session.get(TranslatorTimeReport, report_id)  # type: ignore[attr-defined]
        assert report is not None
        assert report.status == 'confirmed'
        assert report.exported is False
    
        # Verify export button is shown
        page = client.get('/time-reports')
        assert 'TRANSLATOR, Test' in page
        assert 'export-accounting' in page
    
        # Extract csrf-protected export URL from ic-post-to
        page_text = str(page)
        export_match = re.search(
            r'ic-post-to="([^"]*export-accounting[^"]*)"',
            page_text,
        )
>       assert export_match is not None, (
            'No export intercooler link found'
        )
E       AssertionError: No export intercooler link found
E       assert None is not None

.../onegov/translator_directory/test_views.py:3330: AssertionError

To view more test analytics, go to the Test Analytics Dashboard
📋 Got 3 mins? Take this short survey to help us improve Test Analytics.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant