def test_metadata_unknown_attribute(self):
     reader = Reader(
         'tests/data/test-data/MaxMind-DB-test-decoder.mmdb'
     )
     metadata = reader.metadata()
     with self.assertRaisesRegex(AttributeError,
                                 "'Metadata' object has no "
                                 "attribute 'blah'"):
         metadata.blah
    def test_closed_metadata(self):
        reader = Reader(
            'tests/data/test-data/MaxMind-DB-test-decoder.mmdb'
        )
        reader.close()

        # The primary purpose of this is to ensure the extension doesn't
        # segfault
        try:
            metadata = reader.metadata()
        except IOError as ex:
            self.assertEqual('Attempt to read from a closed MaxMind DB.',
                             str(ex), 'extension throws exception')
        else:
            self.assertIsNotNone(
                metadata, 'pure Python implementation returns value')