def testLinks(self): l = QgsAbstractMetadataBase.Link() l.name = 'Trashbat' l.type = 'fashion' l.description = 'registered in the cook islands!' l.url = 'http://trashbat.co.uk' l.format = 'whois' l.mimeType = 'text/string' l.size = '112' self.assertEqual(l.name, 'Trashbat') self.assertEqual(l.type, 'fashion') self.assertEqual(l.description, 'registered in the cook islands!') self.assertEqual(l.url, 'http://trashbat.co.uk') self.assertEqual(l.format, 'whois') self.assertEqual(l.mimeType, 'text/string') self.assertEqual(l.size, '112') m = TestMetadata() l2 = QgsAbstractMetadataBase.Link(l) l2.name = 'Trashbat2' m.setLinks([l, l2]) self.assertEqual(m.links()[0].name, 'Trashbat') self.assertEqual(m.links()[1].name, 'Trashbat2') # add link l3 = QgsAbstractMetadataBase.Link(l) l3.name = 'Trashbat3' m.addLink(l3) self.assertEqual(len(m.links()), 3) self.assertEqual(m.links()[2].name, 'Trashbat3')
def createTestMetadata(self): """ Returns a standard metadata which can be tested with checkExpectedMetadata """ m = TestMetadata() m.setIdentifier('1234') m.setParentIdentifier('xyz') m.setLanguage('en-CA') m.setType('dataset') m.setTitle('roads') m.setAbstract('my roads') m.setHistory(['history a', 'history b']) m.setKeywords({ 'GEMET': ['kw1', 'kw2'], 'gmd:topicCategory': ['natural'], }) c = QgsAbstractMetadataBase.Contact() c.name = 'John Smith' c.organization = 'ACME' c.position = 'staff' c.voice = '1500 515 555' c.fax = 'xx.xxx.xxx.xxxx' c.email = '*****@*****.**' c.role = 'pointOfContact' address = QgsAbstractMetadataBase.Address() address.type = 'postal' address.address = '123 Main Street' address.city = 'anycity' address.administrativeArea = 'anyprovince' address.postalCode = '90210' address.country = 'Canada' c.addresses = [address] m.setContacts([c]) l = QgsAbstractMetadataBase.Link() l.name = 'geonode:roads' l.type = 'OGC:WMS' l.description = 'my GeoNode road layer' l.url = 'http://example.org/wms' l2 = QgsAbstractMetadataBase.Link() l2.name = 'geonode:roads' l2.type = 'OGC:WFS' l2.description = 'my GeoNode road layer' l2.url = 'http://example.org/wfs' l3 = QgsAbstractMetadataBase.Link() l3.name = 'roads' l3.type = 'WWW:LINK' l3.description = 'full dataset download' l3.url = 'http://example.org/roads.tgz' l3.format = 'ESRI Shapefile' l3.mimeType = 'application/gzip' l3.size = '283676' m.setLinks([l, l2, l3]) return m
def testProjectMode(self): """ Create a fully populated QgsProjectMetadata object, then set it to the widget and re-read back the generated metadata to ensure that no content is lost. """ w = QgsMetadataWidget() m = QgsProjectMetadata() m.setIdentifier('1234') m.setParentIdentifier('xyz') m.setLanguage('en-CA') m.setType('project') m.setTitle('roads') m.setAbstract('my roads') m.setHistory(['history a', 'history b']) m.setKeywords({ 'GEMET': ['kw1', 'kw2'], 'gmd:topicCategory': ['natural'], }) c = QgsAbstractMetadataBase.Contact() c.name = 'John Smith' c.organization = 'ACME' c.position = 'staff' c.voice = '1500 515 555' c.fax = 'xx.xxx.xxx.xxxx' c.email = '*****@*****.**' c.role = 'pointOfContact' address = QgsAbstractMetadataBase.Address() address.type = 'postal' address.address = '123 Main Street' address.city = 'anycity' address.administrativeArea = 'anyprovince' address.postalCode = '90210' address.country = 'Canada' c.addresses = [address] m.setContacts([c]) l = QgsAbstractMetadataBase.Link() l.name = 'geonode:roads' l.type = 'OGC:WMS' l.description = 'my GeoNode road layer' l.url = 'http://example.org/wms' l2 = QgsAbstractMetadataBase.Link() l2.name = 'geonode:roads' l2.type = 'OGC:WFS' l2.description = 'my GeoNode road layer' l2.url = 'http://example.org/wfs' l3 = QgsAbstractMetadataBase.Link() l3.name = 'roads' l3.type = 'WWW:LINK' l3.description = 'full dataset download' l3.url = 'http://example.org/roads.tgz' l3.format = 'ESRI Shapefile' l3.mimeType = 'application/gzip' l3.size = '283676' m.setLinks([l, l2, l3]) m.setAuthor('my author') m.setCreationDateTime(QDateTime(QDate(2001, 12, 17), QTime(9, 30, 47))) # set widget metadata w.setMetadata(m) self.assertEqual(w.mode(), QgsMetadataWidget.ProjectMetadata) m = w.metadata() self.assertIsInstance(m, QgsProjectMetadata) self.assertEqual(m.identifier(), '1234') self.assertEqual(m.parentIdentifier(), 'xyz') self.assertEqual(m.language(), 'en-CA') self.assertEqual(m.type(), 'project') self.assertEqual(m.title(), 'roads') self.assertEqual(m.abstract(), 'my roads') self.assertEqual(m.history(), ['history a', 'history b']) self.assertEqual( m.keywords(), {'GEMET': ['kw1', 'kw2'], 'gmd:topicCategory': ['natural']}) self.assertEqual(m.contacts()[0].name, 'John Smith') self.assertEqual(m.contacts()[0].organization, 'ACME') self.assertEqual(m.contacts()[0].position, 'staff') self.assertEqual(m.contacts()[0].voice, '1500 515 555') self.assertEqual(m.contacts()[0].fax, 'xx.xxx.xxx.xxxx') self.assertEqual(m.contacts()[0].email, '*****@*****.**') self.assertEqual(m.contacts()[0].role, 'pointOfContact') self.assertEqual(m.contacts()[0].addresses[0].type, 'postal') self.assertEqual(m.contacts()[0].addresses[0].address, '123 Main Street') self.assertEqual(m.contacts()[0].addresses[0].city, 'anycity') self.assertEqual(m.contacts()[0].addresses[0].administrativeArea, 'anyprovince') self.assertEqual(m.contacts()[0].addresses[0].postalCode, '90210') self.assertEqual(m.contacts()[0].addresses[0].country, 'Canada') self.assertEqual(m.links()[0].name, 'geonode:roads') self.assertEqual(m.links()[0].type, 'OGC:WMS') self.assertEqual(m.links()[0].description, 'my GeoNode road layer') self.assertEqual(m.links()[0].url, 'http://example.org/wms') self.assertEqual(m.links()[1].name, 'geonode:roads') self.assertEqual(m.links()[1].type, 'OGC:WFS') self.assertEqual(m.links()[1].description, 'my GeoNode road layer') self.assertEqual(m.links()[1].url, 'http://example.org/wfs') self.assertEqual(m.links()[2].name, 'roads') self.assertEqual(m.links()[2].type, 'WWW:LINK') self.assertEqual(m.links()[2].description, 'full dataset download') self.assertEqual(m.links()[2].url, 'http://example.org/roads.tgz') self.assertEqual(m.links()[2].format, 'ESRI Shapefile') self.assertEqual(m.links()[2].mimeType, 'application/gzip') self.assertEqual(m.links()[2].size, '283676') self.assertEqual(m.author(), 'my author') self.assertEqual(m.creationDateTime(), QDateTime(QDate(2001, 12, 17), QTime(9, 30, 47)))
def testEquality(self): a = QgsAbstractMetadataBase.Address() a.type = 'postal' a.address = '13 north rd' a.city = 'huxleys haven' a.administrativeArea = 'land of the queens' a.postalCode = '4123' a.country = 'straya!' a2 = QgsAbstractMetadataBase.Address(a) self.assertEqual(a, a2) a2.type = 'postal2' self.assertNotEqual(a, a2) a2 = QgsAbstractMetadataBase.Address(a) a2.address = 'address2' self.assertNotEqual(a, a2) a2 = QgsAbstractMetadataBase.Address(a) a2.city = 'city' self.assertNotEqual(a, a2) a2 = QgsAbstractMetadataBase.Address(a) a2.administrativeArea = 'area2' self.assertNotEqual(a, a2) a2 = QgsAbstractMetadataBase.Address(a) a2.postalCode = 'postal2' self.assertNotEqual(a, a2) a2 = QgsAbstractMetadataBase.Address(a) a2.country = 'country2' self.assertNotEqual(a, a2) c = QgsAbstractMetadataBase.Contact() c.name = 'name' c.organization = 'org' c.position = 'pos' c.voice = '1500 515 555' c.fax = 'fax' c.email = 'email' c.role = 'role' a = QgsAbstractMetadataBase.Address() a.type = 'postal' a2 = QgsAbstractMetadataBase.Address() a2.type = 'street' c.addresses = [a, a2] c2 = QgsAbstractMetadataBase.Contact(c) self.assertEqual(c, c2) c2.name = 'name2' self.assertNotEqual(c, c2) c2 = QgsAbstractMetadataBase.Contact(c) c2.organization = 'org2' self.assertNotEqual(c, c2) c2 = QgsAbstractMetadataBase.Contact(c) c2.position = 'pos2' self.assertNotEqual(c, c2) c2 = QgsAbstractMetadataBase.Contact(c) c2.voice = 'voice2' self.assertNotEqual(c, c2) c2 = QgsAbstractMetadataBase.Contact(c) c2.fax = 'fax2' self.assertNotEqual(c, c2) c2 = QgsAbstractMetadataBase.Contact(c) c2.email = 'email2' self.assertNotEqual(c, c2) c2 = QgsAbstractMetadataBase.Contact(c) c2.role = 'role2' self.assertNotEqual(c, c2) c2 = QgsAbstractMetadataBase.Contact(c) c2.addresses = [a2] self.assertNotEqual(c, c2) # link l = QgsAbstractMetadataBase.Link() l.name = 'name' l.type = 'type' l.description = 'desc' l.url = 'url' l.format = 'format' l.mimeType = 'mime' l.size = '112' l2 = QgsAbstractMetadataBase.Link(l) self.assertEqual(l, l2) l2 = QgsAbstractMetadataBase.Link(l) l2.name = 'name2' self.assertNotEqual(l, l2) l2 = QgsAbstractMetadataBase.Link(l) l2.type = 'type2' self.assertNotEqual(l, l2) l2 = QgsAbstractMetadataBase.Link(l) l2.description = 'desc2' self.assertNotEqual(l, l2) l2 = QgsAbstractMetadataBase.Link(l) l2.url = 'url2' self.assertNotEqual(l, l2) l2 = QgsAbstractMetadataBase.Link(l) l2.format = 'format2' self.assertNotEqual(l, l2) l2 = QgsAbstractMetadataBase.Link(l) l2.mimeType = 'mime2' self.assertNotEqual(l, l2) l2 = QgsAbstractMetadataBase.Link(l) l2.size = '113' self.assertNotEqual(l, l2)