Skip to content

Commit 791e48e

Browse files
author
Steve Canny
committed
add CT_Default.new()
1 parent 8a5e200 commit 791e48e

File tree

2 files changed

+18
-0
lines changed

2 files changed

+18
-0
lines changed

opc/oxml.py

Lines changed: 13 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -87,6 +87,19 @@ def extension(self):
8787
"""
8888
return self.get('Extension')
8989

90+
@staticmethod
91+
def new(ext, content_type):
92+
"""
93+
Return a new ``<Default>`` element with attributes set to parameter
94+
values.
95+
"""
96+
xml = '<Default xmlns="%s"/>' % nsmap['ct']
97+
default = oxml_fromstring(xml)
98+
default.set('Extension', ext[1:])
99+
default.set('ContentType', content_type)
100+
objectify.deannotate(default, cleanup_namespaces=True)
101+
return default
102+
90103

91104
class CT_Override(OxmlBaseElement):
92105
"""

tests/test_oxml.py

Lines changed: 5 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -22,6 +22,11 @@ def it_provides_read_access_to_xml_values(self):
2222
assert default.extension == 'xml'
2323
assert default.content_type == 'application/xml'
2424

25+
def it_can_construct_a_new_default_element(self):
26+
default = CT_Default.new('.xml', 'application/xml')
27+
expected_xml = a_Default().xml
28+
assert default.xml == expected_xml
29+
2530

2631
class DescribeCT_Override(object):
2732

0 commit comments

Comments
 (0)