Merge pull request #1908 from nicoddemus/parametrize-unicode-id
The "ids" argument to "parametrize" again accepts unicode strings in Python 2
This commit is contained in:
		
						commit
						8a41b26f56
					
				|  | @ -1,7 +1,9 @@ | ||||||
| 3.0.3.dev0 | 3.0.3.dev0 | ||||||
| ========== | ========== | ||||||
| 
 | 
 | ||||||
| * | * The ``ids`` argument to ``parametrize`` again accepts ``unicode`` strings | ||||||
|  |   in Python 2 (`#1905`_). | ||||||
|  |   Thanks `@philpep`_ for the report and `@nicoddemus`_ for the PR. | ||||||
| 
 | 
 | ||||||
| * | * | ||||||
| 
 | 
 | ||||||
|  | @ -12,6 +14,11 @@ | ||||||
| * | * | ||||||
| 
 | 
 | ||||||
| 
 | 
 | ||||||
|  | .. _@philpep: https://github.com/philpep | ||||||
|  | 
 | ||||||
|  | .. _#1905: https://github.com/pytest-dev/pytest/issues/1905 | ||||||
|  | 
 | ||||||
|  | 
 | ||||||
| 3.0.2 | 3.0.2 | ||||||
| ===== | ===== | ||||||
| 
 | 
 | ||||||
|  |  | ||||||
|  | @ -832,7 +832,7 @@ class Metafunc(fixtures.FuncargnamesCompatAttr): | ||||||
|                 raise ValueError('%d tests specified with %d ids' %( |                 raise ValueError('%d tests specified with %d ids' %( | ||||||
|                                  len(argvalues), len(ids))) |                                  len(argvalues), len(ids))) | ||||||
|             for id_value in ids: |             for id_value in ids: | ||||||
|                 if id_value is not None and not isinstance(id_value, str): |                 if id_value is not None and not isinstance(id_value, py.builtin._basestring): | ||||||
|                     msg = 'ids must be list of strings, found: %s (type: %s)' |                     msg = 'ids must be list of strings, found: %s (type: %s)' | ||||||
|                     raise ValueError(msg % (saferepr(id_value), type(id_value).__name__)) |                     raise ValueError(msg % (saferepr(id_value), type(id_value).__name__)) | ||||||
|         ids = idmaker(argnames, argvalues, idfn, ids, self.config) |         ids = idmaker(argnames, argvalues, idfn, ids, self.config) | ||||||
|  |  | ||||||
|  | @ -105,6 +105,14 @@ class TestMetafunc: | ||||||
|         ids = [x.id for x in metafunc._calls] |         ids = [x.id for x in metafunc._calls] | ||||||
|         assert ids == ["basic-abc", "basic-def", "advanced-abc", "advanced-def"] |         assert ids == ["basic-abc", "basic-def", "advanced-abc", "advanced-def"] | ||||||
| 
 | 
 | ||||||
|  |     def test_parametrize_and_id_unicode(self): | ||||||
|  |         """Allow unicode strings for "ids" parameter in Python 2 (##1905)""" | ||||||
|  |         def func(x): pass | ||||||
|  |         metafunc = self.Metafunc(func) | ||||||
|  |         metafunc.parametrize("x", [1, 2], ids=[u'basic', u'advanced']) | ||||||
|  |         ids = [x.id for x in metafunc._calls] | ||||||
|  |         assert ids == [u"basic", u"advanced"] | ||||||
|  | 
 | ||||||
|     def test_parametrize_with_wrong_number_of_ids(self, testdir): |     def test_parametrize_with_wrong_number_of_ids(self, testdir): | ||||||
|         def func(x, y): pass |         def func(x, y): pass | ||||||
|         metafunc = self.Metafunc(func) |         metafunc = self.Metafunc(func) | ||||||
|  |  | ||||||
		Loading…
	
		Reference in New Issue