Fix handling of four byte utf8 manifests
- Adds the charset: utf-8 to all the manifest responses - Makes sure we connect to MySQL in utf8mb4 mode, to ensure we can properly read and write 4-byte utf8 strings - Adds tests for all of the above
This commit is contained in:
parent
62609fce3e
commit
eb9ca8e8a8
8 changed files with 120 additions and 11 deletions
|
@ -1822,3 +1822,35 @@ def test_push_legacy_pull_not_allowed(v22_protocol, v1_protocol, remote_images,
|
|||
# Attempt to pull. Should fail with a 404.
|
||||
v1_protocol.pull(liveserver_session, 'devtable', 'newrepo', 'latest', remote_images,
|
||||
credentials=credentials, expected_failure=Failures.UNKNOWN_TAG)
|
||||
|
||||
|
||||
def test_push_pull_emoji_unicode(pusher, puller, unicode_emoji_images, liveserver_session,
|
||||
app_reloader):
|
||||
""" Test: Push an image with unicode inside and then pull it. """
|
||||
credentials = ('devtable', 'password')
|
||||
|
||||
# Push a new repository.
|
||||
pusher.push(liveserver_session, 'devtable', 'newrepo', 'latest', unicode_emoji_images,
|
||||
credentials=credentials)
|
||||
|
||||
# Pull the repository to verify.
|
||||
puller.pull(liveserver_session, 'devtable', 'newrepo', 'latest', unicode_emoji_images,
|
||||
credentials=credentials)
|
||||
|
||||
|
||||
def test_push_pull_emoji_unicode_direct(pusher, puller, unicode_emoji_images, liveserver_session,
|
||||
app_reloader):
|
||||
""" Test: Push an image with *unescaped* unicode inside and then pull it. """
|
||||
credentials = ('devtable', 'password')
|
||||
|
||||
# Turn off automatic unicode encoding when building the manifests.
|
||||
options = ProtocolOptions()
|
||||
options.ensure_ascii = False
|
||||
|
||||
# Push a new repository.
|
||||
pusher.push(liveserver_session, 'devtable', 'newrepo', 'latest', unicode_emoji_images,
|
||||
credentials=credentials, options=options)
|
||||
|
||||
# Pull the repository to verify.
|
||||
puller.pull(liveserver_session, 'devtable', 'newrepo', 'latest', unicode_emoji_images,
|
||||
credentials=credentials, options=options)
|
||||
|
|
Reference in a new issue