Skip to content

Commit 9e8315d

Browse files
author
Steve Canny
committed
add CT_Override.new()
1 parent 791e48e commit 9e8315d

File tree

2 files changed

+18
-0
lines changed

2 files changed

+18
-0
lines changed

opc/oxml.py

+13
Original file line numberDiff line numberDiff line change
@@ -114,6 +114,19 @@ def content_type(self):
114114
"""
115115
return self.get('ContentType')
116116

117+
@staticmethod
118+
def new(partname, content_type):
119+
"""
120+
Return a new ``<Override>`` element with attributes set to parameter
121+
values.
122+
"""
123+
xml = '<Override xmlns="%s"/>' % nsmap['ct']
124+
override = oxml_fromstring(xml)
125+
override.set('PartName', partname)
126+
override.set('ContentType', content_type)
127+
objectify.deannotate(override, cleanup_namespaces=True)
128+
return override
129+
117130
@property
118131
def partname(self):
119132
"""

tests/test_oxml.py

+5
Original file line numberDiff line numberDiff line change
@@ -35,6 +35,11 @@ def it_provides_read_access_to_xml_values(self):
3535
assert override.partname == '/part/name.xml'
3636
assert override.content_type == 'app/vnd.type'
3737

38+
def it_can_construct_a_new_override_element(self):
39+
override = CT_Override.new('/part/name.xml', 'app/vnd.type')
40+
expected_xml = an_Override().xml
41+
assert override.xml == expected_xml
42+
3843

3944
class DescribeCT_Relationship(object):
4045

0 commit comments

Comments
 (0)