def test_repomd_metadata_file_metadata(self): path = os.path.join(self.metadata_file_dir, REPO_DATA_DIR_NAME, REPOMD_FILE_NAME) test_metadata_file_name = 'metadata.gz' test_metadata_file_path = os.path.join(self.metadata_file_dir, REPO_DATA_DIR_NAME, test_metadata_file_name) test_metadata_content = 'The quick brown fox jumps over the lazy dog' os.makedirs(os.path.dirname(test_metadata_file_path)) test_metadata_file_handle = gzip.open(test_metadata_file_path, 'w') test_metadata_file_handle.write(test_metadata_content) test_metadata_file_handle.close() context = RepomdXMLFileContext(self.metadata_file_dir) context._open_metadata_file_handle() context.add_metadata_file_metadata('metadata', test_metadata_file_path) context._close_metadata_file_handle() with open(path, 'r') as repomd_handle: content = repomd_handle.read() self.assertEqual(content.count('<data type="metadata"'), 1) self.assertEqual(content.count('<location href="%s/%s"' % (REPO_DATA_DIR_NAME, test_metadata_file_name)), 1) self.assertEqual(content.count('<timestamp>'), 1) self.assertEqual(content.count('<size>'), 1) self.assertEqual(content.count('<checksum type="sha256">'), 1) self.assertEqual(content.count('<open-size>%s</open-size>' % len(test_metadata_content)), 1) self.assertEqual(content.count('<open-checksum type="sha256">'), 1)
def test_repomd_file_creation(self): path = os.path.join(self.metadata_file_dir, REPO_DATA_DIR_NAME, REPOMD_FILE_NAME) context = RepomdXMLFileContext(self.metadata_file_dir) context._open_metadata_file_handle() context._close_metadata_file_handle() self.assertTrue(os.path.exists(path))
def test_repomd_opening_closing_tags(self): path = os.path.join(self.metadata_file_dir, REPO_DATA_DIR_NAME, REPOMD_FILE_NAME) context = RepomdXMLFileContext(self.metadata_file_dir) context._open_metadata_file_handle() self.assertRaises(NotImplementedError, context._write_root_tag_close) try: context._write_root_tag_open() except Exception, e: self.fail(e.message)
def test_repomd_metadata_file_metadata(self, mock_getmtime): path = os.path.join(self.metadata_file_dir, REPO_DATA_DIR_NAME, REPOMD_FILE_NAME) test_metadata_file_name = 'metadata.gz' test_metadata_file_path = os.path.join(self.metadata_file_dir, REPO_DATA_DIR_NAME, test_metadata_file_name) test_metadata_content = 'The quick brown fox jumps over the lazy dog' os.makedirs(os.path.dirname(test_metadata_file_path)) test_metadata_file_handle = gzip.open(test_metadata_file_path, 'w') test_metadata_file_handle.write(test_metadata_content) test_metadata_file_handle.close() mock_getmtime.return_value = 45.5 context = RepomdXMLFileContext(self.metadata_file_dir) context._open_metadata_file_handle() context.add_metadata_file_metadata('metadata', test_metadata_file_path) context._close_metadata_file_handle() with open(path, 'r') as repomd_handle: content = repomd_handle.read() self.assertEqual(content.count('<data type="metadata"'), 1) self.assertEqual( content.count('<location href="%s/%s"' % (REPO_DATA_DIR_NAME, test_metadata_file_name)), 1) self.assertEqual(content.count('<timestamp>'), 1) # yum does an integer conversion on the timestamp # integer conversion of float strings will throw an error # so make sure this isn't a float xml_element = et.fromstring(content) ts_value = (xml_element.findall('timestamp'))[0].text int(ts_value) self.assertEqual(content.count('<size>'), 1) self.assertEqual(content.count('<checksum type="sha256">'), 1) self.assertEqual( content.count('<open-size>%s</open-size>' % len(test_metadata_content)), 1) self.assertEqual(content.count('<open-checksum type="sha256">'), 1)
def test_repomd_metadata_file_metadata(self, mock_getmtime): path = os.path.join(self.metadata_file_dir, REPO_DATA_DIR_NAME, REPOMD_FILE_NAME) test_metadata_file_name = 'metadata.gz' test_metadata_file_path = os.path.join(self.metadata_file_dir, REPO_DATA_DIR_NAME, test_metadata_file_name) test_metadata_content = 'The quick brown fox jumps over the lazy dog' os.makedirs(os.path.dirname(test_metadata_file_path)) test_metadata_file_handle = gzip.open(test_metadata_file_path, 'w') test_metadata_file_handle.write(test_metadata_content) test_metadata_file_handle.close() mock_getmtime.return_value = 45.5 context = RepomdXMLFileContext(self.metadata_file_dir) context._open_metadata_file_handle() context.add_metadata_file_metadata('metadata', test_metadata_file_path) context._close_metadata_file_handle() with open(path, 'r') as repomd_handle: content = repomd_handle.read() self.assertEqual(content.count('<data type="metadata"'), 1) self.assertEqual(content.count('<location href="%s/%s"' % (REPO_DATA_DIR_NAME, test_metadata_file_name)), 1) self.assertEqual(content.count('<timestamp>'), 1) # yum does an integer conversion on the timestamp # integer conversion of float strings will throw an error # so make sure this isn't a float xml_element = et.fromstring(content) ts_value = (xml_element.findall('timestamp'))[0].text int(ts_value) self.assertEqual(content.count('<size>'), 1) self.assertEqual(content.count('<checksum type="sha256">'), 1) self.assertEqual( content.count('<open-size>%s</open-size>' % len(test_metadata_content)), 1) self.assertEqual(content.count('<open-checksum type="sha256">'), 1)