Repository URL to install this package:
|
Version:
0.9.10 ▾
|
# coding: utf-8
from __future__ import (
absolute_import,
print_function,
unicode_literals,
)
from unittest import TestCase
from pydocx.openxml.wordprocessing import NumberingProperties
from pydocx.util.xml import parse_xml_from_string
class NumberingPropertiesBaseTestCase(TestCase):
def _load_from_xml(self, xml):
root = parse_xml_from_string(xml)
return NumberingProperties.load(root)
class NumberingPropertiesTestCase(NumberingPropertiesBaseTestCase):
def test_numId_child_mapped_to_num_id_attribute(self):
xml = '''
<numPr>
<numId val="100"/>
<ilvl val="200"/>
</numPr>
'''
num = self._load_from_xml(xml)
self.assertEqual(num.num_id, "100")
def test_ilvl_child_mapped_to_level_id_attribute(self):
xml = '''
<numPr>
<numId val="100"/>
<ilvl val="200"/>
</numPr>
'''
num = self._load_from_xml(xml)
self.assertEqual(num.level_id, "200")
class NumberingPropertiesIsRootLevelTestCase(NumberingPropertiesBaseTestCase):
def test_false_when_num_id_is_None(self):
xml = '''
<numPr>
<ilvl val="0"/>
</numPr>
'''
num = self._load_from_xml(xml)
assert not num.is_root_level()
def test_false_when_level_id_is_None(self):
xml = '''
<numPr>
<numId val="100"/>
</numPr>
'''
num = self._load_from_xml(xml)
assert not num.is_root_level()
def test_false_when_both_num_id_and_level_id_are_None(self):
xml = '''
<numPr>
</numPr>
'''
num = self._load_from_xml(xml)
assert not num.is_root_level()
def test_false_when_level_id_is_not_root(self):
xml = '''
<numPr>
<numId val="100"/>
<ilvl val="200"/>
</numPr>
'''
num = self._load_from_xml(xml)
assert not num.is_root_level()
def test_true_when_level_id_is_root(self):
xml = '''
<numPr>
<numId val="100"/>
<ilvl val="{root}"/>
</numPr>
'''.format(root=NumberingProperties.ROOT_LEVEL_ID)
num = self._load_from_xml(xml)
assert num.is_root_level()