Skip to content

Commit d322eae

Browse files
authored
Merge pull request #8 from whtsky/new_line
Fix wrap in base64-ed data
2 parents f3851fa + 8785a74 commit d322eae

5 files changed

Lines changed: 23 additions & 10 deletions

File tree

.travis.yml

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -5,10 +5,11 @@ branches:
55
- master
66
python:
77
- 2.7
8-
- 3.3
98
- 3.4
109
- 3.5
1110
- 3.6
11+
- 3.7
12+
- 3.8
1213
- "pypy"
1314
- "pypy3"
1415
env:

datauri/__init__.py

Lines changed: 4 additions & 8 deletions
Original file line numberDiff line numberDiff line change
@@ -2,19 +2,15 @@
22
import re
33
import textwrap
44

5-
try:
6-
from base64 import decodebytes as decode64
7-
from base64 import encodebytes as encode64
8-
BYTES = True
9-
except ImportError:
10-
from base64 import decodestring as decode64
11-
from base64 import encodestring as encode64
12-
BYTES = False
5+
from base64 import b64decode as decode64
6+
from base64 import b64encode as encode64
137

148
try:
159
from urllib.parse import quote, unquote
10+
BYTES = True
1611
except ImportError:
1712
from urllib import quote, unquote
13+
BYTES = False
1814

1915

2016
from .exceptions import InvalidCharset, InvalidDataURI, InvalidMimeType

setup.py

Lines changed: 3 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -32,9 +32,11 @@ def read(fname):
3232
'Programming Language :: Python :: 2',
3333
'Programming Language :: Python :: 2.7',
3434
'Programming Language :: Python :: 3',
35-
'Programming Language :: Python :: 3.3',
3635
'Programming Language :: Python :: 3.4',
3736
'Programming Language :: Python :: 3.5',
37+
'Programming Language :: Python :: 3.6',
38+
'Programming Language :: Python :: 3.7',
39+
'Programming Language :: Python :: 3.8',
3840
],
3941
test_suite='tests',
4042
tests_require=['six'],

tests/test_long_file.txt

Lines changed: 9 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,9 @@
1+
Lorem ipsum dolor sit amet, consectetur adipiscing elit. Sed in odio eget nisl vulputate molestie. Maecenas quis maximus lectus, vel porta mi. Praesent dapibus sagittis massa nec gravida. Quisque fringilla ac nunc eu dapibus. Nam purus diam, cursus sit amet diam at, dignissim pulvinar metus. Sed gravida felis eu facilisis tincidunt. Vivamus pharetra sed dolor ac porta. Donec a pretium nibh, ut pellentesque felis. Curabitur commodo arcu sapien, nec consequat lectus dictum quis. Proin accumsan est ac ultricies sodales. Suspendisse maximus lectus a nibh iaculis placerat. Praesent dapibus ac sapien vel consectetur. Nulla facilisi.
2+
3+
Vivamus nunc est, fermentum quis dapibus nec, luctus eleifend erat. Aenean interdum tortor eu vulputate viverra. Integer nec posuere libero. Duis nec pellentesque odio. Maecenas porttitor, risus a ornare ullamcorper, libero lorem pellentesque est, ullamcorper facilisis ex arcu sit amet leo. Nam dictum dolor quam, eu aliquet arcu scelerisque sit amet. Donec sed tortor aliquam, eleifend libero id, finibus nisl. Praesent quis tristique odio. Vivamus sed pellentesque erat, sed aliquam ante. Aliquam efficitur placerat laoreet. Nam velit leo, vestibulum sed enim vitae, fermentum efficitur est. Phasellus id ex a ipsum pretium tempor. Donec semper neque ac orci vestibulum, eget dictum lorem aliquam. Nulla finibus, lacus et lacinia molestie, justo erat posuere nulla, ac fringilla quam purus nec ex. Praesent vehicula augue porta convallis sagittis.
4+
5+
Phasellus pellentesque justo nec sapien iaculis, et vestibulum urna viverra. Nulla accumsan tempor sapien vitae pellentesque. Proin at purus eget augue tristique lacinia in non tortor. Curabitur ut placerat ipsum. Suspendisse a nisl tellus. In non luctus risus. Donec pulvinar malesuada sagittis. Maecenas ultrices ut libero at ullamcorper. Vestibulum mi justo, eleifend at lobortis ut, tincidunt nec dui. Duis malesuada neque ut orci congue, a accumsan ex posuere. Sed sodales, erat in tincidunt efficitur, lorem lectus scelerisque diam, quis congue arcu orci et neque. Aenean ligula nisi, sagittis et aliquet et, dictum eget metus.
6+
7+
Lorem ipsum dolor sit amet, consectetur adipiscing elit. Curabitur placerat sit amet diam vitae congue. Pellentesque dapibus tortor massa, id lobortis risus lacinia sed. Praesent sit amet enim tristique, luctus velit a, sagittis nisi. Nam placerat sapien a ex dapibus, non rutrum erat blandit. Aenean bibendum, nisi quis dictum euismod, nulla libero sollicitudin justo, eget suscipit sapien arcu condimentum mi. Donec laoreet orci nec augue congue bibendum. Pellentesque euismod tellus dignissim odio facilisis egestas.
8+
9+
Vestibulum mattis ex sed quam auctor, nec congue dolor semper. Proin tristique quam tincidunt augue ultrices, sed placerat est facilisis. Nulla ultricies velit in iaculis dapibus. Curabitur non libero arcu. Donec ultrices eget lorem suscipit bibendum. Suspendisse quis nunc a nisl aliquam malesuada non nec orci. Ut ut ex faucibus odio mattis porta et eget orci. Fusce porttitor sapien eget purus interdum tincidunt. Cras vehicula dolor nec enim ornare, ac vestibulum nisl condimentum. Mauris maximus velit in diam commodo efficitur. Sed tristique interdum lectus vitae pretium. Suspendisse libero dolor, condimentum ut imperdiet non, blandit in felis. Donec eget vestibulum est.

tests/test_parsing.py

Lines changed: 5 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -54,6 +54,11 @@ def test_from_file_charset(self):
5454
self.assertEqual(parsed.text, 'This is a message.\n')
5555
self.assertEqual(parsed.charset, 'cp500')
5656

57+
def test_no_wrap(self):
58+
filename = os.path.join(TEST_DIR, 'test_long_file.txt')
59+
parsed = DataURI.from_file(filename)
60+
self.assertFalse("\n" in str(parsed))
61+
5762
def test_parse_name(self):
5863
t = 'data:text/plain;name=file-1_final.txt;charset=utf-8;base64,VGhlIHF1aWNrIGJyb3duIGZveCBqdW1wZWQgb3ZlciB0aGUgbGF6eSBkb2cu'
5964
parsed = DataURI(t)

0 commit comments

Comments
 (0)