Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Update application for skosprovider 0.7.0 and fix functional tests. #506

Merged

Conversation

Wim-De-Clercq
Copy link
Contributor

@Wim-De-Clercq Wim-De-Clercq commented Feb 19, 2020

Er zit wel wat meer in dan origineel in het ticket. Maar met minder ging het volgens mij moeilijk.

  • requests hebben nu een db property. Dat is de database session, 1 per request. Wordt gebruikt voor zowel de datamanagers zoals vroeger als ook de sqlalchemyproviders per request.
  • alembic voor updates in skosprovider
  • testen gebruiken niet langer een in-memory sqlite maar file-based. Zo kan ik ook alembic erbij gebruiken en is die ineens mee getest. Door de algemene test changes qua setup en teardown van de classes en testen is de (functionele) test duurtijd gezakt van 49sec met in-memory DB naar 5 sec met sqlite file. Dus veel zal dat niet geven.
  • skos/__init__.py aangepast aan nieuw manier van opbouwen Registry.
  • development, productie (hoewel die vrij leeg is?) en test .ini changes voor de nieuwe registry.
  • Nieuwe DbTest class die iedere test die een database wil gebruiken zou moeten gebruiken. Elke test heeft zijn eigen self.session binnen een transaction, rollback na elke test.

Ik heb de niet-functionele testen nog niet bekeken.

@Wim-De-Clercq
Copy link
Contributor Author

Je kan u natuurlijk afvragen of het logisch is dat alles groen is, terwijl de applicatie niet kan runnen door de Registry issues..

Dat is omdat de functionele testen hun eigen providers gebruiken en geen van die providers heeft dat issue.

TREES = SQLAlchemyProvider(
{'id': 'TREES', 'conceptscheme_id': 1},
self.config.registry.dbmaker
)
GEO = SQLAlchemyProvider(
{'id': 'GEOGRAPHY', 'conceptscheme_id': 2},
self.config.registry.dbmaker,
uri_generator=UriPatternGenerator('urn:x-vioe:geography:%s')
)
STYLES = SQLAlchemyProvider(
{'id': 'STYLES', 'conceptscheme_id': 3},
self.config.registry.dbmaker
)
MATERIALS = SQLAlchemyProvider(
{'id': 'MATERIALS', 'conceptscheme_id': 4},
self.config.registry.dbmaker,
uri_generator=UriPatternGenerator('urn:x-vioe:materials:%s')
)
self.config.add_subscriber(self.mock_event_handler, ProtectedResourceEvent)
self.config.add_subscriber(self.mock_event_handler_provider_unavailable, ProtectedResourceEvent)
skosregis = self.config.get_skos_registry()
skosregis.register_provider(TREES)
skosregis.register_provider(GEO)
skosregis.register_provider(STYLES)
skosregis.register_provider(MATERIALS)
skosregis.register_provider(TEST)

@koenedaele
Copy link
Member

Je kan u natuurlijk afvragen of het logisch is dat alles groen is, terwijl de applicatie niet kan runnen door de Registry issues..

Dat is omdat de functionele testen hun eigen providers gebruiken en geen van die providers heeft dat issue.

TREES = SQLAlchemyProvider(
{'id': 'TREES', 'conceptscheme_id': 1},
self.config.registry.dbmaker
)
GEO = SQLAlchemyProvider(
{'id': 'GEOGRAPHY', 'conceptscheme_id': 2},
self.config.registry.dbmaker,
uri_generator=UriPatternGenerator('urn:x-vioe:geography:%s')
)
STYLES = SQLAlchemyProvider(
{'id': 'STYLES', 'conceptscheme_id': 3},
self.config.registry.dbmaker
)
MATERIALS = SQLAlchemyProvider(
{'id': 'MATERIALS', 'conceptscheme_id': 4},
self.config.registry.dbmaker,
uri_generator=UriPatternGenerator('urn:x-vioe:materials:%s')
)
self.config.add_subscriber(self.mock_event_handler, ProtectedResourceEvent)
self.config.add_subscriber(self.mock_event_handler_provider_unavailable, ProtectedResourceEvent)
skosregis = self.config.get_skos_registry()
skosregis.register_provider(TREES)
skosregis.register_provider(GEO)
skosregis.register_provider(STYLES)
skosregis.register_provider(MATERIALS)
skosregis.register_provider(TEST)

Op zich niet onlogisch. Atramhasis hoeft niet geconfigureerd te worden met zo'n getty of heritagedata provider. Die zijn enkel nodig voor links naar externe thesauri. De enige provider die echt essentieel is, is de SQLAlchemy provider.

Copy link
Member

@koenedaele koenedaele left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Not sure I understand all code, but the tests are functioning. There are a lot of deprecation warnings though, but that's for a another ticket. Main issue is not being able to run standalone.

development.ini Outdated Show resolved Hide resolved
atramhasis/__init__.py Show resolved Hide resolved
@koenedaele
Copy link
Member

Dit is de laatste PR tegen branch DEV_0.7.0. Eens deze gemerged is, zet ik alles op develop en verwijder ik de DEV_0.7.0 branch

- Default to sqlite database
- Set infer_concept_relations not nullable
- Add logging in case of attribute error during registry creation
@Wim-De-Clercq Wim-De-Clercq merged commit 19cbbd2 into DEV_0.7.0 Feb 21, 2020
@Wim-De-Clercq Wim-De-Clercq deleted the feature/488_fix_functional_tests_and_application branch February 21, 2020 12:07
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.

None yet

2 participants