|
5 | 5 | import re
|
6 | 6 |
|
7 | 7 |
|
8 |
| -from importlib_metadata import version |
| 8 | +from importlib_metadata import PackageNotFoundError, version |
9 | 9 | import pytest
|
10 | 10 |
|
11 | 11 | import appmap._implementation
|
@@ -115,15 +115,60 @@ def test_python_version(self, capsys, mocker):
|
115 | 115 |
|
116 | 116 | self.check_errors(capsys, 1, 1, r'Minimum Python version supported is \d\.\d, found')
|
117 | 117 |
|
118 |
| - def test_django_version(self, capsys, mocker): |
| 118 | + @pytest.mark.parametrize('django_version', ['3.2.1', '2.2.1']) |
| 119 | + def test_django_version_current(self, capsys, mocker, django_version): |
| 120 | + def side_effect(dist): |
| 121 | + if dist == 'django': |
| 122 | + return django_version |
| 123 | + elif dist == 'flask': |
| 124 | + raise PackageNotFoundError() |
| 125 | + return version(dist) |
| 126 | + |
| 127 | + m = mocker.patch('appmap.command.appmap_agent_validate.version', |
| 128 | + side_effect=side_effect) |
| 129 | + |
| 130 | + self.check_errors(capsys, 0, 0, None) |
| 131 | + |
| 132 | + |
| 133 | + @pytest.mark.parametrize('django_version', ['3.1.0', '2.1.0']) |
| 134 | + def test_django_version_old(self, capsys, mocker, django_version): |
| 135 | + def side_effect(dist): |
| 136 | + if dist == 'django': |
| 137 | + return django_version |
| 138 | + elif dist == 'flask': |
| 139 | + raise PackageNotFoundError() |
| 140 | + return version(dist) |
| 141 | + |
119 | 142 | m = mocker.patch('appmap.command.appmap_agent_validate.version',
|
120 |
| - side_effect=lambda d: '3.1' if d == 'django' else version(d)) |
| 143 | + side_effect=side_effect) |
121 | 144 |
|
122 |
| - self.check_errors(capsys, 1, 1, 'django must have version >= 3.2, found 3.1') |
| 145 | + self.check_errors(capsys, 1, 1, 'django must have version >=') |
| 146 | + |
| 147 | + |
| 148 | + @pytest.mark.parametrize('flask_version', ['1.1.4', '2.0.1']) |
| 149 | + def test_flask_version_current(self, capsys, mocker, flask_version): |
| 150 | + def side_effect(dist): |
| 151 | + if dist == 'django': |
| 152 | + raise PackageNotFoundError() |
| 153 | + elif dist == 'flask': |
| 154 | + return flask_version |
| 155 | + return version(dist) |
| 156 | + |
| 157 | + m = mocker.patch('appmap.command.appmap_agent_validate.version', |
| 158 | + side_effect=side_effect) |
| 159 | + |
| 160 | + self.check_errors(capsys, 0, 0, None) |
123 | 161 |
|
| 162 | + @pytest.mark.parametrize('flask_version', ['1.0', '2.0.0.alpha1']) |
| 163 | + def test_flask_version_old(self, capsys, mocker, flask_version): |
| 164 | + def side_effect(dist): |
| 165 | + if dist == 'django': |
| 166 | + raise PackageNotFoundError() |
| 167 | + elif dist == 'flask': |
| 168 | + return flask_version |
| 169 | + return version(dist) |
124 | 170 |
|
125 |
| - def test_flask_version(self, capsys, mocker): |
126 | 171 | m = mocker.patch('appmap.command.appmap_agent_validate.version',
|
127 |
| - side_effect=lambda d: '1.0' if d == 'flask' else version(d)) |
| 172 | + side_effect=side_effect) |
128 | 173 |
|
129 |
| - self.check_errors(capsys, 1, 1, 'flask must have version >= 1.1, found 1.0') |
| 174 | + self.check_errors(capsys, 1, 1, 'flask must have version >=') |
0 commit comments