48 lines
2.3 KiB
Python
48 lines
2.3 KiB
Python
import pytest
|
|
|
|
from wcs.qommon.form import FileSizeWidget
|
|
from wcs.qommon.humantime import humanduration2seconds, seconds2humanduration
|
|
from wcs.admin.settings import FileTypesDirectory
|
|
|
|
def test_parse_file_size():
|
|
assert FileSizeWidget.parse_file_size('17') == 17
|
|
assert FileSizeWidget.parse_file_size('17o') == 17
|
|
assert FileSizeWidget.parse_file_size('17 K') == 17*10**3
|
|
assert FileSizeWidget.parse_file_size('17 M') == 17*10**6
|
|
assert FileSizeWidget.parse_file_size('17 Mo') == 17*10**6
|
|
assert FileSizeWidget.parse_file_size('17 MB') == 17*10**6
|
|
assert FileSizeWidget.parse_file_size('17 Kio') == 17*2**10
|
|
assert FileSizeWidget.parse_file_size('17 Mio') == 17*2**20
|
|
assert FileSizeWidget.parse_file_size('17K') == 17*10**3
|
|
assert FileSizeWidget.parse_file_size('17 K') == 17*10**3
|
|
assert FileSizeWidget.parse_file_size(' 17 K ') == 17*10**3
|
|
|
|
def test_parse_invalid_file_size():
|
|
for test_value in ('17i', 'hello', '0.4K', '2G'):
|
|
with pytest.raises(ValueError):
|
|
FileSizeWidget.parse_file_size(test_value)
|
|
|
|
def test_humantime():
|
|
for x in range(3, 100000, 13):
|
|
assert humanduration2seconds(seconds2humanduration(x)) == x
|
|
|
|
def test_parse_mimetypes():
|
|
assert FileTypesDirectory.parse_mimetypes('application/pdf') == ['application/pdf']
|
|
assert FileTypesDirectory.parse_mimetypes('.pdf') == ['application/pdf']
|
|
assert FileTypesDirectory.parse_mimetypes('.pdf, .odt') == [
|
|
'application/pdf', 'application/vnd.oasis.opendocument.text']
|
|
|
|
def test_format_mimetypes():
|
|
assert FileTypesDirectory.format_mimetypes(['application/pdf']) == \
|
|
'application/pdf (.pdf)'
|
|
assert FileTypesDirectory.format_mimetypes(['application/pdf', 'text/rtf']) == \
|
|
'application/pdf (.pdf), text/rtf'
|
|
assert FileTypesDirectory.format_mimetypes(['application/pdf', 'application/msword']) == \
|
|
'application/pdf (.pdf), application/msword (.doc)'
|
|
assert FileTypesDirectory.format_mimetypes(['application/pdf',
|
|
'application/vnd.openxmlformats-officedocument.wordprocessingml.document',
|
|
'application/msword']) == \
|
|
'application/pdf (.pdf), '\
|
|
'application/vnd.openxmlformats-officedocument.wordprocessingml.document (.docx)'\
|
|
'...'
|