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:
parent
af7605cce8
commit
e420cb002b
@ -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
|
||||
|
||||
|
@ -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
|
||||
|
Loading…
Reference in New Issue
Block a user