1
1
mirror of https://github.com/Kozea/WeasyPrint.git synced 2024-10-05 00:21:15 +03:00

Allow percentage paddings

This commit is contained in:
Simon Sapin 2012-04-06 15:37:43 +02:00
parent af7605cce8
commit e420cb002b
2 changed files with 22 additions and 6 deletions

View File

@ -459,9 +459,9 @@ def counter(tokens, default_integer):
@validator('margin-bottom')
@validator('margin-left')
@single_token
def lenght_precentage_or_auto(token, negative=True):
def lenght_precentage_or_auto(token):
"""``margin-*`` properties validation."""
length = get_length(token, negative, percentage=True)
length = get_length(token, percentage=True)
if length:
return length
if get_keyword(token) == 'auto':
@ -473,7 +473,11 @@ def lenght_precentage_or_auto(token, negative=True):
@single_token
def width_height(token):
"""Validation for the ``width`` and ``height`` properties."""
return lenght_precentage_or_auto.__func__(token, negative=False)
length = get_length(token, negative=False, percentage=True)
if length:
return length
if get_keyword(token) == 'auto':
return 'auto'
@validator()
@ -599,7 +603,7 @@ def list_style_type(keyword):
@single_token
def length_or_precentage(token):
"""``padding-*`` properties validation."""
length = get_length(token, negative=False)
length = get_length(token, negative=False, percentage=True)
if length:
return length

View File

@ -133,6 +133,8 @@ def test_transforms():
assert expand_to_dict('-weasy-transform: translate(6px) rotate(90deg)'
) == {'transform': [('translate', ((6, 'px'), (0, 'px'))),
('rotate', (90, 'deg'))]}
assert expand_to_dict('-weasy-transform: translate(-4px, 0)'
) == {'transform': [('translate', ((-4, 'px'), (0, None)))]}
assert expand_to_dict('-weasy-transform: translate(6px, 20%)'
) == {'transform': [('translate', ((6, 'px'), (20, '%')))]}
assert expand_to_dict('-weasy-transform: scale(2)'
@ -162,16 +164,22 @@ def test_expand_four_sides():
'margin_bottom': (1, 'em'),
'margin_left': (1, 'em'),
}
assert expand_to_dict('margin: -1em auto 20%') == {
'margin_top': (-1, 'em'),
'margin_right': 'auto',
'margin_bottom': (20, '%'),
'margin_left': 'auto',
}
assert expand_to_dict('padding: 1em 0') == {
'padding_top': (1, 'em'),
'padding_right': (0, None),
'padding_bottom': (1, 'em'),
'padding_left': (0, None),
}
assert expand_to_dict('padding: 1em 0 2em') == {
assert expand_to_dict('padding: 1em 0 2%') == {
'padding_top': (1, 'em'),
'padding_right': (0, None),
'padding_bottom': (2, 'em'),
'padding_bottom': (2, '%'),
'padding_left': (0, None),
}
assert expand_to_dict('padding: 1em 0 2em 5px') == {
@ -183,6 +191,10 @@ def test_expand_four_sides():
assert expand_to_dict('padding: 1 2 3 4 5',
'Expected 1 to 4 token components got 5') == {}
assert expand_to_dict('margin: rgb(0, 0, 0)', 'invalid') == {}
assert expand_to_dict('padding: auto', 'invalid') == {}
assert expand_to_dict('padding: -12px', 'invalid') == {}
assert expand_to_dict('border-width: -3em', 'invalid') == {}
assert expand_to_dict('border-width: 12%', 'invalid') == {}
@assert_no_logs