def test_includeme(): config = Mock(spec_set=['add_route']) includeme(config) # This may look like a ridiculous test, but the cost of keeping it # up-to-date is hopefully pretty low (run the tests with -vv, copy the new # expected value) and it serves as a check to ensure that any changes made # to the routes were intended. assert config.add_route.mock_calls == [ call('index', '/'), call('robots', '/robots.txt'), call('via_redirect', '/via'), call('login', '/login'), call('logout', '/logout'), call('signup', '/signup'), call('activate', '/activate/{id}/{code}'), call('forgot_password', '/forgot-password'), call('account_reset', '/account/reset'), call('account_reset_with_code', '/account/reset/{code}'), call('account', '/account/settings'), call('account_profile', '/account/profile'), call('account_notifications', '/account/settings/notifications'), call('account_developer', '/account/developer'), call('claim_account_legacy', '/claim_account/{token}'), call('dismiss_sidebar_tutorial', '/app/dismiss_sidebar_tutorial'), call('activity.search', '/search'), call('activity.group_search', '/groups/{pubid}/search'), call('activity.user_search', '/users/{username}/search'), call('admin_index', '/admin/'), call('admin_admins', '/admin/admins'), call('admin_badge', '/admin/badge'), call('admin_features', '/admin/features'), call('admin_cohorts', '/admin/features/cohorts'), call('admin_cohorts_edit', '/admin/features/cohorts/{id}'), call('admin_groups', '/admin/groups'), call('admin_groups_csv', '/admin/groups.csv'), call('admin_nipsa', '/admin/nipsa'), call('admin_staff', '/admin/staff'), call('admin_users', '/admin/users'), call('admin_users_activate', '/admin/users/activate'), call('admin_users_delete', '/admin/users/delete'), call('admin_users_rename', '/admin/users/rename'), call('annotation', '/a/{id}', factory='memex.resources:AnnotationFactory', traverse='/{id}'), call('stream', '/stream'), call('stream.user_query', '/u/{user}'), call('stream.tag_query', '/t/{tag}'), call('assets_client', '/assets/client/*subpath'), call('assets', '/assets/*subpath'), call('badge', '/api/badge'), call('token', '/api/token'), call('api.users', '/api/users'), call('session', '/app'), call('widget', '/app.html'), call('embed', '/embed.js'), call('stream_atom', '/stream.atom'), call('stream_rss', '/stream.rss'), call('group_create', '/groups/new'), call('group_edit', '/groups/{pubid}/edit', factory='h.models.group:GroupFactory', traverse='/{pubid}'), call('group_leave', '/groups/{pubid}/leave', factory='h.models.group:GroupFactory', traverse='/{pubid}'), call('group_read', '/groups/{pubid}/{slug:[^/]*}', factory='h.models.group:GroupFactory', traverse='/{pubid}'), call('group_read_noslug', '/groups/{pubid}', factory='h.models.group:GroupFactory', traverse='/{pubid}'), call('help', '/docs/help'), call('onboarding', '/welcome/'), call('custom_onboarding', '/welcome/{slug}'), call('unsubscribe', '/notification/unsubscribe/{token}'), ]
def test_includeme(): config = Mock(spec_set=['add_route']) includeme(config) # This may look like a ridiculous test, but the cost of keeping it # up-to-date is hopefully pretty low (run the tests with -vv, copy the new # expected value, strip out any Unicode prefixes) and it serves as a check # to ensure that any changes made to the routes were intended. assert config.add_route.mock_calls == [ call('index', '/'), call('robots', '/robots.txt'), call('via_redirect', '/via'), call('login', '/login'), call('logout', '/logout'), call('signup', '/signup'), call('activate', '/activate/{id}/{code}'), call('forgot_password', '/forgot-password'), call('account_reset', '/account/reset'), call('account_reset_with_code', '/account/reset/{code}'), call('account', '/account/settings'), call('account_profile', '/account/profile'), call('account_notifications', '/account/settings/notifications'), call('account_developer', '/account/developer'), call('claim_account_legacy', '/claim_account/{token}'), call('dismiss_sidebar_tutorial', '/app/dismiss_sidebar_tutorial'), call('activity.search', '/search'), call('activity.user_search', '/users/{username}', factory=u'h.models.user:UserFactory', traverse=u'/{username}'), call('admin_index', '/admin/'), call('admin_admins', '/admin/admins'), call('admin_badge', '/admin/badge'), call('admin_features', '/admin/features'), call('admin_cohorts', '/admin/features/cohorts'), call('admin_cohorts_edit', '/admin/features/cohorts/{id}'), call('admin_groups', '/admin/groups'), call('admin_groups_create', '/admin/groups/new'), call('admin_mailer', '/admin/mailer'), call('admin_mailer_test', '/admin/mailer/test'), call('admin_nipsa', '/admin/nipsa'), call('admin_oauthclients', '/admin/oauthclients'), call('admin_oauthclients_create', '/admin/oauthclients/new'), call('admin_oauthclients_edit', '/admin/oauthclients/{id}', factory='h.resources.AuthClientFactory', traverse='/{id}'), call('admin_staff', '/admin/staff'), call('admin_users', '/admin/users'), call('admin_users_activate', '/admin/users/activate'), call('admin_users_delete', '/admin/users/delete'), call('admin_users_rename', '/admin/users/rename'), call('annotation', '/a/{id}', factory='h.resources:AnnotationResourceFactory', traverse='/{id}'), call('stream', '/stream'), call('stream.user_query', '/u/{user}'), call('stream.tag_query', '/t/{tag}'), call('assets', '/assets/*subpath'), call('api.index', '/api/'), call('api.links', '/api/links'), call('api.annotations', '/api/annotations'), call('api.annotation', '/api/annotations/{id:[A-Za-z0-9_-]{20,22}}', factory='h.resources:AnnotationResourceFactory', traverse='/{id}'), call('api.annotation_flag', '/api/annotations/{id:[A-Za-z0-9_-]{20,22}}/flag', factory='h.resources:AnnotationResourceFactory', traverse='/{id}'), call('api.annotation_hide', '/api/annotations/{id:[A-Za-z0-9_-]{20,22}}/hide', factory='h.resources:AnnotationResourceFactory', traverse='/{id}'), call('api.annotation.jsonld', '/api/annotations/{id:[A-Za-z0-9_-]{20,22}}.jsonld', factory='h.resources:AnnotationResourceFactory', traverse='/{id}'), call('api.profile', '/api/profile'), call('api.debug_token', '/api/debug-token'), call('api.group_member', '/api/groups/{pubid}/members/{user}', factory='h.models.group:GroupFactory', traverse='/{pubid}'), call('api.search', '/api/search'), call('api.users', '/api/users'), call('api.user', '/api/users/{username}'), call('badge', '/api/badge'), call('token', '/api/token'), call('oauth_authorize', '/oauth/authorize'), call('oauth_revoke', '/oauth/revoke'), call('sidebar_app', '/app.html'), call('embed', '/embed.js'), call('stream_atom', '/stream.atom'), call('stream_rss', '/stream.rss'), call('api.groups', '/api/groups'), call('group_create', '/groups/new'), call('group_edit', '/groups/{pubid}/edit', factory='h.models.group:GroupFactory', traverse='/{pubid}'), call('group_read', '/groups/{pubid}/{slug:[^/]*}', factory='h.models.group:GroupFactory', traverse='/{pubid}'), call('group_read_noslug', '/groups/{pubid}', factory='h.models.group:GroupFactory', traverse='/{pubid}'), call('help', '/docs/help'), call('onboarding', '/welcome/'), call('custom_onboarding', '/welcome/{slug}'), call('unsubscribe', '/notification/unsubscribe/{token}'), call('status', '/_status'), call('about', '/about/', static=True), call('bioscience', '/bioscience/', static=True), call('blog', '/blog/', static=True), call('chrome-extension', 'https://chrome.google.com/webstore/detail/bjfhmglciegochdpefhhlphglcehbmek', static=True), call('contact', '/contact/', static=True), call('contribute', '/contribute/', static=True), call('education', '/education/', static=True), call('for-publishers', '/for-publishers/', static=True), call('fund', '/fund/', static=True), call('help-center', 'https://hypothesis.zendesk.com/hc/en-us', static=True), call('hypothesis-github', 'https://github.com/hypothesis', static=True), call('hypothesis-twitter', 'https://twitter.com/hypothes_is', static=True), call('jobs', '/jobs/', static=True), call('press', '/press/', static=True), call('privacy', '/privacy/', static=True), call('roadmap', '/roadmap/', static=True), call('team', '/team/', static=True), call('terms-of-service', '/terms-of-service/', static=True), call('wordpress-plugin', 'https://wordpress.org/plugins/hypothesis/', static=True), ]
def test_includeme(): config = Mock(spec_set=["add_route"]) includeme(config) # This may look like a ridiculous test, but the cost of keeping it # up-to-date is hopefully pretty low (run the tests with -vv, copy the new # expected value, strip out any Unicode prefixes) and it serves as a check # to ensure that any changes made to the routes were intended. calls = [ call("index", "/"), call("robots", "/robots.txt"), call("via_redirect", "/via"), call("login", "/login"), call("logout", "/logout"), call("signup", "/signup"), call("activate", "/activate/{id}/{code}"), call("forgot_password", "/forgot-password"), call("account_reset", "/account/reset"), call("account_reset_with_code", "/account/reset/{code}"), call("account", "/account/settings"), call("account_profile", "/account/profile"), call("account_notifications", "/account/settings/notifications"), call("account_developer", "/account/developer"), call("claim_account_legacy", "/claim_account/{token}"), call("dismiss_sidebar_tutorial", "/app/dismiss_sidebar_tutorial"), call("activity.search", "/search"), call( "activity.user_search", "/users/{username}", factory="h.traversal:UserRoot", traverse="/{username}", ), call("admin.index", "/admin/"), call("admin.admins", "/admin/admins"), call("admin.badge", "/admin/badge"), call("admin.features", "/admin/features"), call("admin.cohorts", "/admin/features/cohorts"), call("admin.cohorts_edit", "/admin/features/cohorts/{id}"), call("admin.groups", "/admin/groups"), call("admin.groups_create", "/admin/groups/new"), call( "admin.groups_delete", "/admin/groups/delete/{id}", factory="h.traversal.GroupRoot", traverse="/{id}", ), call( "admin.groups_edit", "/admin/groups/{id}", factory="h.traversal.GroupRoot", traverse="/{id}", ), call("admin.mailer", "/admin/mailer"), call("admin.mailer_test", "/admin/mailer/test"), call("admin.nipsa", "/admin/nipsa"), call("admin.oauthclients", "/admin/oauthclients"), call("admin.oauthclients_create", "/admin/oauthclients/new"), call( "admin.oauthclients_edit", "/admin/oauthclients/{id}", factory="h.traversal.AuthClientRoot", traverse="/{id}", ), call("admin.organizations", "/admin/organizations"), call("admin.organizations_create", "/admin/organizations/new"), call( "admin.organizations_delete", "/admin/organizations/delete/{pubid}", factory="h.traversal.OrganizationRoot", traverse="/{pubid}", ), call( "admin.organizations_edit", "/admin/organizations/{pubid}", factory="h.traversal.OrganizationRoot", traverse="/{pubid}", ), call("admin.staff", "/admin/staff"), call("admin.users", "/admin/users"), call("admin.users_activate", "/admin/users/activate"), call("admin.users_delete", "/admin/users/delete"), call("admin.users_rename", "/admin/users/rename"), call("admin.search", "/admin/search"), call( "annotation", "/a/{id}", factory="h.traversal:AnnotationRoot", traverse="/{id}", ), call("stream", "/stream"), call("stream.user_query", "/u/{user}"), call("stream.tag_query", "/t/{tag}"), call("assets", "/assets/*subpath"), call("api.index", "/api/"), call("api.links", "/api/links"), call( "api.annotations", "/api/annotations", factory="h.traversal:AnnotationRoot" ), call( "api.annotation", "/api/annotations/{id:[A-Za-z0-9_-]{20,22}}", factory="h.traversal:AnnotationRoot", traverse="/{id}", ), call( "api.annotation_flag", "/api/annotations/{id:[A-Za-z0-9_-]{20,22}}/flag", factory="h.traversal:AnnotationRoot", traverse="/{id}", ), call( "api.annotation_hide", "/api/annotations/{id:[A-Za-z0-9_-]{20,22}}/hide", factory="h.traversal:AnnotationRoot", traverse="/{id}", ), call( "api.annotation.jsonld", "/api/annotations/{id:[A-Za-z0-9_-]{20,22}}.jsonld", factory="h.traversal:AnnotationRoot", traverse="/{id}", ), call( "api.bulk", "/api/bulk", request_method="POST", factory="h.traversal.BulkAPIRoot", ), call("api.groups", "/api/groups", factory="h.traversal.GroupRoot"), call( "api.group_upsert", "/api/groups/{id}", request_method="PUT", factory="h.traversal.GroupUpsertRoot", traverse="/{id}", ), call( "api.group", "/api/groups/{id}", request_method=("GET", "PATCH"), factory="h.traversal.GroupRoot", traverse="/{id}", ), call("api.profile", "/api/profile", factory="h.traversal.ProfileRoot"), call("api.profile_groups", "/api/profile/groups"), call("api.debug_token", "/api/debug-token"), call( "api.group_members", "/api/groups/{pubid}/members", factory="h.traversal.GroupRoot", traverse="/{pubid}", ), call( "api.group_member", "/api/groups/{pubid}/members/{userid}", factory="h.traversal.GroupRoot", traverse="/{pubid}", ), call("api.search", "/api/search"), call("api.users", "/api/users", factory="h.traversal.UserRoot"), call( "api.user_read", "/api/users/{userid}", request_method="GET", factory="h.traversal.UserUserIDRoot", traverse="/{userid}", ), call( "api.user", "/api/users/{username}", factory="h.traversal.UserRoot", traverse="/{username}", ), call("badge", "/api/badge"), call("token", "/api/token"), call("oauth_authorize", "/oauth/authorize"), call("oauth_revoke", "/oauth/revoke"), call("sidebar_app", "/app.html"), call("notebook_app", "/notebook"), call("embed", "/embed.js"), call("stream_atom", "/stream.atom"), call("stream_rss", "/stream.rss"), call( "organization_logo", "/organizations/{pubid}/logo", factory="h.traversal.OrganizationLogoRoot", traverse="/{pubid}", ), call("group_create", "/groups/new"), call( "group_edit", "/groups/{pubid}/edit", factory="h.traversal.GroupRoot", traverse="/{pubid}", ), call( "group_read", "/groups/{pubid}/{slug:[^/]*}", factory="h.traversal.GroupRoot", traverse="/{pubid}", ), call( "group_read_noslug", "/groups/{pubid}", factory="h.traversal.GroupRoot", traverse="/{pubid}", ), call("help", "/docs/help"), call("onboarding", "/welcome/"), call("custom_onboarding", "/welcome/{slug}"), call("unsubscribe", "/notification/unsubscribe/{token}"), call("status", "/_status"), call("about", "/about/", static=True), call("bioscience", "/bioscience/", static=True), call("blog", "/blog/", static=True), call( "chrome-extension", "https://chrome.google.com/webstore/detail/bjfhmglciegochdpefhhlphglcehbmek", static=True, ), call("contact", "/contact/", static=True), call("contribute", "/contribute/", static=True), call("education", "/education/", static=True), call("for-publishers", "/for-publishers/", static=True), call("fund", "/fund/", static=True), call("help-center", "/help/", static=True), call("hypothesis-github", "https://github.com/hypothesis", static=True), call("hypothesis-twitter", "https://twitter.com/hypothes_is", static=True), call("jobs", "/jobs/", static=True), call("press", "/press/", static=True), call("privacy", "/privacy/", static=True), call("roadmap", "/roadmap/", static=True), call("team", "/team/", static=True), call("terms-of-service", "/terms-of-service/", static=True), call( "wordpress-plugin", "https://wordpress.org/plugins/hypothesis/", static=True ), ] # Test each one one at a time to make it a bit easier to spot which one # isn't in the list for single_call in calls: assert single_call in config.add_route.mock_calls # Then we can assert the order here assert config.add_route.mock_calls == calls
def test_includeme(): config = Mock(spec_set=['add_route']) includeme(config) # This may look like a ridiculous test, but the cost of keeping it # up-to-date is hopefully pretty low (run the tests with -vv, copy the new # expected value, strip out any Unicode prefixes) and it serves as a check # to ensure that any changes made to the routes were intended. assert config.add_route.mock_calls == [ call('index', '/'), call('robots', '/robots.txt'), call('via_redirect', '/via'), call('login', '/login'), call('logout', '/logout'), call('signup', '/signup'), call('activate', '/activate/{id}/{code}'), call('forgot_password', '/forgot-password'), call('account_reset', '/account/reset'), call('account_reset_with_code', '/account/reset/{code}'), call('account', '/account/settings'), call('account_profile', '/account/profile'), call('account_notifications', '/account/settings/notifications'), call('account_developer', '/account/developer'), call('claim_account_legacy', '/claim_account/{token}'), call('dismiss_sidebar_tutorial', '/app/dismiss_sidebar_tutorial'), call('activity.search', '/search'), call('activity.user_search', '/users/{username}', factory='h.traversal:UserRoot', traverse='/{username}'), call('admin_index', '/admin/'), call('admin_admins', '/admin/admins'), call('admin_badge', '/admin/badge'), call('admin_features', '/admin/features'), call('admin_cohorts', '/admin/features/cohorts'), call('admin_cohorts_edit', '/admin/features/cohorts/{id}'), call('admin_groups', '/admin/groups'), call('admin_groups_create', '/admin/groups/new'), call('admin_groups_delete', '/admin/groups/delete/{pubid}'), call('admin_groups_edit', '/admin/groups/{pubid}'), call('admin_mailer', '/admin/mailer'), call('admin_mailer_test', '/admin/mailer/test'), call('admin_nipsa', '/admin/nipsa'), call('admin_oauthclients', '/admin/oauthclients'), call('admin_oauthclients_create', '/admin/oauthclients/new'), call('admin_oauthclients_edit', '/admin/oauthclients/{id}', factory='h.traversal.AuthClientRoot', traverse='/{id}'), call('admin_organizations', '/admin/organizations'), call('admin_organizations_create', '/admin/organizations/new'), call('admin_organizations_delete', '/admin/organizations/delete/{pubid}', factory='h.traversal.OrganizationRoot', traverse='/{pubid}'), call('admin_organizations_edit', '/admin/organizations/{pubid}', factory='h.traversal.OrganizationRoot', traverse='/{pubid}'), call('admin_staff', '/admin/staff'), call('admin_users', '/admin/users'), call('admin_users_activate', '/admin/users/activate'), call('admin_users_delete', '/admin/users/delete'), call('admin_users_rename', '/admin/users/rename'), call('annotation', '/a/{id}', factory='h.traversal:AnnotationRoot', traverse='/{id}'), call('stream', '/stream'), call('stream.user_query', '/u/{user}'), call('stream.tag_query', '/t/{tag}'), call('assets', '/assets/*subpath'), call('api.index', '/api/'), call('api.links', '/api/links'), call('api.annotations', '/api/annotations'), call('api.annotation', '/api/annotations/{id:[A-Za-z0-9_-]{20,22}}', factory='h.traversal:AnnotationRoot', traverse='/{id}'), call('api.annotation_flag', '/api/annotations/{id:[A-Za-z0-9_-]{20,22}}/flag', factory='h.traversal:AnnotationRoot', traverse='/{id}'), call('api.annotation_hide', '/api/annotations/{id:[A-Za-z0-9_-]{20,22}}/hide', factory='h.traversal:AnnotationRoot', traverse='/{id}'), call('api.annotation.jsonld', '/api/annotations/{id:[A-Za-z0-9_-]{20,22}}.jsonld', factory='h.traversal:AnnotationRoot', traverse='/{id}'), call('api.groups', '/api/groups'), call('api.profile', '/api/profile'), call('api.debug_token', '/api/debug-token'), call('api.group_member', '/api/groups/{pubid}/members/{user}', factory='h.traversal.GroupRoot', traverse='/{pubid}'), call('api.search', '/api/search'), call('api.users', '/api/users'), call('api.user', '/api/users/{username}'), call('badge', '/api/badge'), call('token', '/api/token'), call('oauth_authorize', '/oauth/authorize'), call('oauth_revoke', '/oauth/revoke'), call('sidebar_app', '/app.html'), call('embed', '/embed.js'), call('stream_atom', '/stream.atom'), call('stream_rss', '/stream.rss'), call('organization_logo', '/organizations/{pubid}/logo', factory='h.traversal.OrganizationLogoRoot', traverse='/{pubid}'), call('group_create', '/groups/new'), call('group_edit', '/groups/{pubid}/edit', factory='h.traversal.GroupRoot', traverse='/{pubid}'), call('group_read', '/groups/{pubid}/{slug:[^/]*}', factory='h.traversal.GroupRoot', traverse='/{pubid}'), call('group_read_noslug', '/groups/{pubid}', factory='h.traversal.GroupRoot', traverse='/{pubid}'), call('help', '/docs/help'), call('onboarding', '/welcome/'), call('custom_onboarding', '/welcome/{slug}'), call('unsubscribe', '/notification/unsubscribe/{token}'), call('status', '/_status'), call('about', '/about/', static=True), call('bioscience', '/bioscience/', static=True), call('blog', '/blog/', static=True), call('chrome-extension', 'https://chrome.google.com/webstore/detail/bjfhmglciegochdpefhhlphglcehbmek', static=True), call('contact', '/contact/', static=True), call('contribute', '/contribute/', static=True), call('education', '/education/', static=True), call('for-publishers', '/for-publishers/', static=True), call('fund', '/fund/', static=True), call('help-center', '/help/', static=True), call('hypothesis-github', 'https://github.com/hypothesis', static=True), call('hypothesis-twitter', 'https://twitter.com/hypothes_is', static=True), call('jobs', '/jobs/', static=True), call('press', '/press/', static=True), call('privacy', '/privacy/', static=True), call('roadmap', '/roadmap/', static=True), call('team', '/team/', static=True), call('terms-of-service', '/terms-of-service/', static=True), call('wordpress-plugin', 'https://wordpress.org/plugins/hypothesis/', static=True), ]
def test_includeme(): config = Mock(spec_set=['add_route']) includeme(config) # This may look like a ridiculous test, but the cost of keeping it # up-to-date is hopefully pretty low (run the tests with -vv, copy the new # expected value) and it serves as a check to ensure that any changes made # to the routes were intended. assert config.add_route.mock_calls == [ call('index', '/'), call('robots', '/robots.txt'), call('via_redirect', '/via'), call('login', '/login'), call('logout', '/logout'), call('signup', '/signup'), call('activate', '/activate/{id}/{code}'), call('forgot_password', '/forgot-password'), call('account_reset', '/account/reset'), call('account_reset_with_code', '/account/reset/{code}'), call('account', '/account/settings'), call('account_profile', '/account/profile'), call('account_notifications', '/account/settings/notifications'), call('account_developer', '/account/developer'), call('claim_account_legacy', '/claim_account/{token}'), call('dismiss_sidebar_tutorial', '/app/dismiss_sidebar_tutorial'), call('activity.search', '/search'), call('activity.group_search', '/groups/{pubid}/search'), call('activity.user_search', '/users/{username}/search'), call('admin_index', '/admin/'), call('admin_admins', '/admin/admins'), call('admin_badge', '/admin/badge'), call('admin_features', '/admin/features'), call('admin_cohorts', '/admin/features/cohorts'), call('admin_cohorts_edit', '/admin/features/cohorts/{id}'), call('admin_groups', '/admin/groups'), call('admin_groups_csv', '/admin/groups.csv'), call('admin_nipsa', '/admin/nipsa'), call('admin_staff', '/admin/staff'), call('admin_users', '/admin/users'), call('admin_users_activate', '/admin/users/activate'), call('admin_users_delete', '/admin/users/delete'), call('admin_users_rename', '/admin/users/rename'), call('annotation', '/a/{id}', factory='memex.resources:AnnotationFactory', traverse='/{id}'), call('stream', '/stream'), call('stream.user_query', '/u/{user}'), call('stream.tag_query', '/t/{tag}'), call('assets_client', '/assets/client/*subpath'), call('assets', '/assets/*subpath'), call('badge', '/api/badge'), call('token', '/api/token'), call('api.users', '/api/users'), call('session', '/app'), call('widget', '/app.html'), call('embed', '/embed.js'), call('stream_atom', '/stream.atom'), call('stream_rss', '/stream.rss'), call('group_create', '/groups/new'), call('group_edit', '/groups/{pubid}/edit', factory='h.models.group:GroupFactory', traverse='/{pubid}'), call('group_leave', '/groups/{pubid}/leave', factory='h.models.group:GroupFactory', traverse='/{pubid}'), call('group_read', '/groups/{pubid}/{slug:[^/]*}', factory='h.models.group:GroupFactory', traverse='/{pubid}'), call('group_read_noslug', '/groups/{pubid}', factory='h.models.group:GroupFactory', traverse='/{pubid}'), call('help', '/docs/help'), call('onboarding', '/welcome/'), call('custom_onboarding', '/welcome/{slug}'), call('unsubscribe', '/notification/unsubscribe/{token}'), ]
def test_includeme(): config = Mock(spec_set=['add_route']) includeme(config) # This may look like a ridiculous test, but the cost of keeping it # up-to-date is hopefully pretty low (run the tests with -vv, copy the new # expected value) and it serves as a check to ensure that any changes made # to the routes were intended. assert config.add_route.mock_calls == [ call('index', '/'), call('robots', '/robots.txt'), call('via_redirect', '/via'), call('login', '/login'), call('logout', '/logout'), call('signup', '/signup'), call('activate', '/activate/{id}/{code}'), call('forgot_password', '/forgot-password'), call('account_reset', '/account/reset'), call('account_reset_with_code', '/account/reset/{code}'), call('account', '/account/settings'), call('account_profile', '/account/profile'), call('account_notifications', '/account/settings/notifications'), call('account_developer', '/account/developer'), call('claim_account_legacy', '/claim_account/{token}'), call('dismiss_sidebar_tutorial', '/app/dismiss_sidebar_tutorial'), call('activity.search', '/search'), call('activity.user_search', '/users/{username}', factory=u'h.models.user:UserFactory', traverse=u'/{username}'), call('admin_index', '/admin/'), call('admin_admins', '/admin/admins'), call('admin_badge', '/admin/badge'), call('admin_features', '/admin/features'), call('admin_cohorts', '/admin/features/cohorts'), call('admin_cohorts_edit', '/admin/features/cohorts/{id}'), call('admin_groups', '/admin/groups'), call('admin_groups_csv', '/admin/groups.csv'), call('admin_nipsa', '/admin/nipsa'), call('admin_staff', '/admin/staff'), call('admin_users', '/admin/users'), call('admin_users_activate', '/admin/users/activate'), call('admin_users_delete', '/admin/users/delete'), call('admin_users_rename', '/admin/users/rename'), call('annotation', '/a/{id}', factory='memex.resources:AnnotationResourceFactory', traverse='/{id}'), call('stream', '/stream'), call('stream.user_query', '/u/{user}'), call('stream.tag_query', '/t/{tag}'), call('assets_client', '/assets/client/*subpath'), call('assets', '/assets/*subpath'), call('badge', '/api/badge'), call('token', '/api/token'), call('api.users', '/api/users'), call('session', '/app'), call('widget', '/app.html'), call('embed', '/embed.js'), call('stream_atom', '/stream.atom'), call('stream_rss', '/stream.rss'), call('group_create', '/groups/new'), call('group_edit', '/groups/{pubid}/edit', factory='h.models.group:GroupFactory', traverse='/{pubid}'), call('group_leave', '/groups/{pubid}/leave', factory='h.models.group:GroupFactory', traverse='/{pubid}'), call('group_read', '/groups/{pubid}/{slug:[^/]*}', factory='h.models.group:GroupFactory', traverse='/{pubid}'), call('group_read_noslug', '/groups/{pubid}', factory='h.models.group:GroupFactory', traverse='/{pubid}'), call('help', '/docs/help'), call('onboarding', '/welcome/'), call('custom_onboarding', '/welcome/{slug}'), call('unsubscribe', '/notification/unsubscribe/{token}'), call('about', '/about/', static=True), call('bioscience', '/bioscience/', static=True), call('blog', '/blog/', static=True), call('chrome-extension', 'https://chrome.google.com/webstore/detail/bjfhmglciegochdpefhhlphglcehbmek', static=True), call('contact', '/contact/', static=True), call('contribute', '/contribute/', static=True), call('education', '/education/', static=True), call('for-publishers', '/for-publishers/', static=True), call('fund', '/fund/', static=True), call('help-center', 'https://hypothesis.zendesk.com/hc/en-us', static=True), call('hypothesis-github', 'https://github.com/hypothesis', static=True), call('hypothesis-twitter', 'https://twitter.com/hypothes_is', static=True), call('jobs', '/jobs/', static=True), call('press', '/press/', static=True), call('privacy', '/privacy/', static=True), call('roadmap', '/roadmap/', static=True), call('team', '/team/', static=True), call('terms-of-service', '/terms-of-service/', static=True), call('wordpress-plugin', 'https://wordpress.org/plugins/hypothesis/', static=True), ]
def test_includeme(): config = Mock(spec_set=["add_route"]) includeme(config) # This may look like a ridiculous test, but the cost of keeping it # up-to-date is hopefully pretty low (run the tests with -vv, copy the new # expected value, strip out any Unicode prefixes) and it serves as a check # to ensure that any changes made to the routes were intended. assert config.add_route.mock_calls == [ call("index", "/"), call("robots", "/robots.txt"), call("via_redirect", "/via"), call("login", "/login"), call("logout", "/logout"), call("signup", "/signup"), call("activate", "/activate/{id}/{code}"), call("forgot_password", "/forgot-password"), call("account_reset", "/account/reset"), call("account_reset_with_code", "/account/reset/{code}"), call("account", "/account/settings"), call("account_profile", "/account/profile"), call("account_notifications", "/account/settings/notifications"), call("account_developer", "/account/developer"), call("claim_account_legacy", "/claim_account/{token}"), call("dismiss_sidebar_tutorial", "/app/dismiss_sidebar_tutorial"), call("activity.search", "/search"), call( "activity.user_search", "/users/{username}", factory="h.traversal:UserRoot", traverse="/{username}", ), call("admin.index", "/admin/"), call("admin.admins", "/admin/admins"), call("admin.badge", "/admin/badge"), call("admin.features", "/admin/features"), call("admin.cohorts", "/admin/features/cohorts"), call("admin.cohorts_edit", "/admin/features/cohorts/{id}"), call("admin.groups", "/admin/groups"), call("admin.groups_create", "/admin/groups/new"), call( "admin.groups_delete", "/admin/groups/delete/{id}", factory="h.traversal.GroupRoot", traverse="/{id}", ), call( "admin.groups_edit", "/admin/groups/{id}", factory="h.traversal.GroupRoot", traverse="/{id}", ), call("admin.mailer", "/admin/mailer"), call("admin.mailer_test", "/admin/mailer/test"), call("admin.nipsa", "/admin/nipsa"), call("admin.oauthclients", "/admin/oauthclients"), call("admin.oauthclients_create", "/admin/oauthclients/new"), call( "admin.oauthclients_edit", "/admin/oauthclients/{id}", factory="h.traversal.AuthClientRoot", traverse="/{id}", ), call("admin.organizations", "/admin/organizations"), call("admin.organizations_create", "/admin/organizations/new"), call( "admin.organizations_delete", "/admin/organizations/delete/{pubid}", factory="h.traversal.OrganizationRoot", traverse="/{pubid}", ), call( "admin.organizations_edit", "/admin/organizations/{pubid}", factory="h.traversal.OrganizationRoot", traverse="/{pubid}", ), call("admin.staff", "/admin/staff"), call("admin.users", "/admin/users"), call("admin.users_activate", "/admin/users/activate"), call("admin.users_delete", "/admin/users/delete"), call("admin.users_rename", "/admin/users/rename"), call( "annotation", "/a/{id}", factory="h.traversal:AnnotationRoot", traverse="/{id}", ), call("stream", "/stream"), call("stream.user_query", "/u/{user}"), call("stream.tag_query", "/t/{tag}"), call("assets", "/assets/*subpath"), call("api.index", "/api/"), call("api.links", "/api/links"), call( "api.annotations", "/api/annotations", factory="h.traversal:AnnotationRoot" ), call( "api.annotation", "/api/annotations/{id:[A-Za-z0-9_-]{20,22}}", factory="h.traversal:AnnotationRoot", traverse="/{id}", ), call( "api.annotation_flag", "/api/annotations/{id:[A-Za-z0-9_-]{20,22}}/flag", factory="h.traversal:AnnotationRoot", traverse="/{id}", ), call( "api.annotation_hide", "/api/annotations/{id:[A-Za-z0-9_-]{20,22}}/hide", factory="h.traversal:AnnotationRoot", traverse="/{id}", ), call( "api.annotation.jsonld", "/api/annotations/{id:[A-Za-z0-9_-]{20,22}}.jsonld", factory="h.traversal:AnnotationRoot", traverse="/{id}", ), call("api.groups", "/api/groups", factory="h.traversal.GroupRoot"), call( "api.group_upsert", "/api/groups/{id}", request_method="PUT", factory="h.traversal.GroupUpsertRoot", traverse="/{id}", ), call( "api.group", "/api/groups/{id}", request_method=("GET", "PATCH"), factory="h.traversal.GroupRoot", traverse="/{id}", ), call("api.profile", "/api/profile", factory="h.traversal.ProfileRoot"), call("api.profile_groups", "/api/profile/groups"), call("api.debug_token", "/api/debug-token"), call( "api.group_member", "/api/groups/{pubid}/members/{userid}", factory="h.traversal.GroupRoot", traverse="/{pubid}", ), call("api.search", "/api/search"), call("api.users", "/api/users", factory="h.traversal.UserRoot"), call( "api.user", "/api/users/{username}", factory="h.traversal.UserRoot", traverse="/{username}", ), call("badge", "/api/badge"), call("token", "/api/token"), call("oauth_authorize", "/oauth/authorize"), call("oauth_revoke", "/oauth/revoke"), call("sidebar_app", "/app.html"), call("embed", "/embed.js"), call("stream_atom", "/stream.atom"), call("stream_rss", "/stream.rss"), call( "organization_logo", "/organizations/{pubid}/logo", factory="h.traversal.OrganizationLogoRoot", traverse="/{pubid}", ), call("group_create", "/groups/new"), call( "group_edit", "/groups/{pubid}/edit", factory="h.traversal.GroupRoot", traverse="/{pubid}", ), call( "group_read", "/groups/{pubid}/{slug:[^/]*}", factory="h.traversal.GroupRoot", traverse="/{pubid}", ), call( "group_read_noslug", "/groups/{pubid}", factory="h.traversal.GroupRoot", traverse="/{pubid}", ), call("help", "/docs/help"), call("onboarding", "/welcome/"), call("custom_onboarding", "/welcome/{slug}"), call("unsubscribe", "/notification/unsubscribe/{token}"), call("status", "/_status"), call("about", "/about/", static=True), call("bioscience", "/bioscience/", static=True), call("blog", "/blog/", static=True), call( "chrome-extension", "https://chrome.google.com/webstore/detail/bjfhmglciegochdpefhhlphglcehbmek", static=True, ), call("contact", "/contact/", static=True), call("contribute", "/contribute/", static=True), call("education", "/education/", static=True), call("for-publishers", "/for-publishers/", static=True), call("fund", "/fund/", static=True), call("help-center", "/help/", static=True), call("hypothesis-github", "https://github.com/hypothesis", static=True), call("hypothesis-twitter", "https://twitter.com/hypothes_is", static=True), call("jobs", "/jobs/", static=True), call("press", "/press/", static=True), call("privacy", "/privacy/", static=True), call("roadmap", "/roadmap/", static=True), call("team", "/team/", static=True), call("terms-of-service", "/terms-of-service/", static=True), call( "wordpress-plugin", "https://wordpress.org/plugins/hypothesis/", static=True ), ]