def add_interfaces(self, path, content): # Interfaces in the same directory are all linked together in an # interfaces.xpt file. interfaces_path = mozpath.join(mozpath.dirname(path), 'interfaces.xpt') if not self.copier.contains(interfaces_path): self.add_manifest( ManifestInterfaces(mozpath.dirname(path), 'interfaces.xpt')) self.copier.add(interfaces_path, XPTFile()) self.copier[interfaces_path].add(content)
def test_xpt_file(self): x = XPTFile() x.add(foo_xpt) x.add(bar_xpt) x.copy(self.tmppath('interfaces.xpt')) foo = read_interfaces(foo_xpt.open()) foo2 = read_interfaces(foo2_xpt.open()) bar = read_interfaces(bar_xpt.open()) linked = read_interfaces(self.tmppath('interfaces.xpt')) self.assertEqual(foo['foo'], linked['foo']) self.assertEqual(bar['bar'], linked['bar']) x.remove(foo_xpt) x.copy(self.tmppath('interfaces2.xpt')) linked = read_interfaces(self.tmppath('interfaces2.xpt')) self.assertEqual(bar['foo'], linked['foo']) self.assertEqual(bar['bar'], linked['bar']) x.add(foo_xpt) x.copy(DestNoWrite(self.tmppath('interfaces.xpt'))) linked = read_interfaces(self.tmppath('interfaces.xpt')) self.assertEqual(foo['foo'], linked['foo']) self.assertEqual(bar['bar'], linked['bar']) x = XPTFile() x.add(foo2_xpt) x.add(bar_xpt) x.copy(self.tmppath('interfaces.xpt')) linked = read_interfaces(self.tmppath('interfaces.xpt')) self.assertEqual(foo2['foo'], linked['foo']) self.assertEqual(bar['bar'], linked['bar']) x = XPTFile() x.add(foo_xpt) x.add(foo2_xpt) x.add(bar_xpt) from xpt import DataError self.assertRaises(DataError, x.copy, self.tmppath('interfaces.xpt'))