|
| 1 | +from flask import Flask |
| 2 | + |
| 3 | +from tunsberg.api import get_api_version, get_api_version_from_flask_url |
| 4 | + |
| 5 | + |
| 6 | +app = Flask(__name__) |
| 7 | + |
| 8 | + |
| 9 | +def test_get_api_version_from_flask_url_default(): |
| 10 | + """ Test that the default pattern matches """ |
| 11 | + with app.test_request_context('/api/v1/resource'): |
| 12 | + assert get_api_version_from_flask_url() == 'v1' |
| 13 | + |
| 14 | + |
| 15 | +def test_get_api_version_from_flask_url_custom_pattern(): |
| 16 | + """ Test that the custom pattern matches """ |
| 17 | + with app.test_request_context('/api/v2_1/resource'): |
| 18 | + assert get_api_version_from_flask_url(pattern=r'v\d+_\d+') == 'v2_1' |
| 19 | + |
| 20 | + |
| 21 | +def test_get_api_version_from_flask_url_no_version(): |
| 22 | + """ Test that the default return value is empty string """ |
| 23 | + with app.test_request_context('/api/resource'): |
| 24 | + assert get_api_version_from_flask_url() == '' |
| 25 | + |
| 26 | + |
| 27 | +def test_get_api_version_from_flask_url_default_return(): |
| 28 | + """ Test that the default return value is 'v0' """ |
| 29 | + with app.test_request_context('/api/resource'): |
| 30 | + assert get_api_version_from_flask_url(default='v0') == 'v0' |
| 31 | + |
| 32 | + |
| 33 | +def test_get_api_version_from_flask_url_no_default_return(): |
| 34 | + """ Test that the default return value is empty string """ |
| 35 | + with app.test_request_context('/api/resource'): |
| 36 | + assert get_api_version_from_flask_url(default='') == '' |
| 37 | + |
| 38 | + |
| 39 | +def test_get_api_version_standard(): |
| 40 | + """ Test that the standard pattern matches """ |
| 41 | + assert get_api_version('app.api.v1') == 'v1' |
| 42 | + assert get_api_version('module.v2.submodule') == 'v2' |
| 43 | + assert get_api_version('service.v3_1.beta') == 'v3_1' |
| 44 | + |
| 45 | + |
| 46 | +def test_get_api_version_no_version(): |
| 47 | + """ Test that the default return value is empty string """ |
| 48 | + assert get_api_version('app.api') == '' |
| 49 | + assert get_api_version('module.submodule') == '' |
| 50 | + |
| 51 | + |
| 52 | +def test_get_api_version_custom_pattern(): |
| 53 | + """ Test that the custom pattern matches """ |
| 54 | + assert get_api_version('app.api.v2021_04', pattern=r'v\d{4}_\d{2}') == 'v2021_04' |
| 55 | + assert get_api_version('service.v2021.beta', pattern=r'v\d{4}') == 'v2021' |
| 56 | + |
| 57 | + |
| 58 | +def test_get_api_version_custom_default(): |
| 59 | + """ Test that the custom default value is returned """ |
| 60 | + assert get_api_version('app.api', default='no_version') == 'no_version' |
| 61 | + assert get_api_version('module.submodule', default='undefined') == 'undefined' |
0 commit comments