You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
{{ message }}
Repository navigation
Refactor str tests to reflect that str and unicode are merged in Python 3 #81005
Note: these values reflect the state of the issue at the time it was migrated and might not reflect the current state.
Show more details
GitHub fields:
assignee=Noneclosed_at=Nonecreated_at=<Date2019-05-07.06:37:53.164>labels= ['3.8', 'type-feature', 'tests']
title='Refactor str tests to reflect that str and unicode are merged in Python 3'updated_at=<Date2019-05-07.20:05:56.998>user='https://github.com/asqui'
Unit tests of str and related types (e.g. UserString) contain nomenclature and structure that dates back to the Python 2 distinction between str and unicode.
Previously it was undesirable to disturb the structure of these tests too much as this would complicate the merging of bug fixes back to Python 2, however with Python 2 drawing near to end-of-life this is perhaps less of a concern.
I would propose the following changes as a start:
Rename test_unicode.py to test_str.py, and UnicodeTest class to StrTest
(to reflect the type that is now being tested)
Remove MixinStrUnicodeUserStringTest class and move its tests into CommonTest
(The comment for this class says
additional tests that only work for
stringlike objects, i.e. str, UserString
but in the absence of unicode the CommonTest
class is also only used for these two types now.)
Promote tests from the current UnicodeTest class to CommonTest
where it makes sense to do so; remove checks that no longer make sense.
(e.g. checks around mixed str/unicode arguments that are all just str now)
Maybe the duplicative checkequalnofix() method can also go away now?
The BadSeq1 helper class is not used because the corresponding check was
commented out in 2007. Either reinstate the check, or remove this class.
I'm happy to submit a PR for this, but just wanted to get some feedback before making the changes.
There is still the functionality common to str, bytes and bytearray. So it make sense to have the common class for testing str, bytes, bytearray and UserList and other common class (subclass of the former one) for testing str and UserList.
asqui commented on May 7, 2019
asquimannequin
MannequinAuthor
More actions
Agreed. This functionality is in BaseTest (which is the base for CommonTest) and I don't propose to change this.
asqui commented on May 7, 2019
asquimannequin
MannequinAuthor
More actions
PS opened here: #13172
I've tried to break down the changes into individual steps, with justification in commit messages. Happy to collapse these down into fewer commits before merge if preferred.
I haven't done the "Promote tests from the current UnicodeTest class to CommonTest" portion yet, but I'm running out of sprint time so I wanted to submit what I have.
I believe these changes are suitable for merge to master, but keen to hear feedback :-)
Activity
asqui commentedon May 7, 2019
Unit tests of
strand related types (e.g.UserString) contain nomenclature and structure that dates back to the Python 2 distinction betweenstrandunicode.Previously it was undesirable to disturb the structure of these tests too much as this would complicate the merging of bug fixes back to Python 2, however with Python 2 drawing near to end-of-life this is perhaps less of a concern.
I would propose the following changes as a start:
UnicodeTestclass toStrTest(to reflect the type that is now being tested)
MixinStrUnicodeUserStringTestclass and move its tests intoCommonTest(The comment for this class says
additional tests that only work for
stringlike objects, i.e. str, UserString
but in the absence ofunicodetheCommonTestclass is also only used for these two types now.)
UnicodeTestclass toCommonTestwhere it makes sense to do so; remove checks that no longer make sense.
(e.g. checks around mixed
str/unicodearguments that are all juststrnow)Maybe the duplicative
checkequalnofix()method can also go away now?BadSeq1helper class is not used because the corresponding check wascommented out in 2007. Either reinstate the check, or remove this class.
I'm happy to submit a PR for this, but just wanted to get some feedback before making the changes.
serhiy-storchaka commentedon May 7, 2019
There is still the functionality common to str, bytes and bytearray. So it make sense to have the common class for testing str, bytes, bytearray and UserList and other common class (subclass of the former one) for testing str and UserList.
asqui commentedon May 7, 2019
Agreed. This functionality is in
BaseTest(which is the base forCommonTest) and I don't propose to change this.asqui commentedon May 7, 2019
PS opened here: #13172
I've tried to break down the changes into individual steps, with justification in commit messages. Happy to collapse these down into fewer commits before merge if preferred.
I haven't done the "Promote tests from the current
UnicodeTestclass toCommonTest" portion yet, but I'm running out of sprint time so I wanted to submit what I have.I believe these changes are suitable for merge to master, but keen to hear feedback :-)
gh-81005: Refactor str tests to reflect that str and unicode are merg…