1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58
|
# -*- coding: utf-8 -*-
"""Tests for the artifact definitions readers."""
import os
import unittest
from artifacts import reader
from artifacts import writer
from tests import test_lib
class ArtifactsWriterTest(test_lib.BaseTestCase):
"""Class to test the artifacts writer."""
def _TestArtifactsConversion(
self, artifact_reader, artifact_writer, filename):
"""Tests artifacts conversion.
Args:
artifact_reader (ArtifactsReader): artifact reader.
artifact_writer (ArtifactsWriter): artifact writer.
filename (str): name of the file to convert.
"""
test_file = self._GetTestFilePath([filename])
artifact_definitions = list(artifact_reader.ReadFile(test_file))
with test_lib.TempDirectory() as temporary_directory:
output_file = os.path.join(temporary_directory, filename)
artifact_writer.WriteArtifactsFile(artifact_definitions, output_file)
converted_artifact_definitions = list(
artifact_reader.ReadFile(output_file))
self.assertListEqual(
[artifact.AsDict() for artifact in artifact_definitions],
[artifact.AsDict() for artifact in converted_artifact_definitions])
@test_lib.skipUnlessHasTestFile(['definitions.json'])
def testJsonWriter(self):
"""Tests conversion with the JsonArtifactsWriter."""
artifact_reader = reader.JsonArtifactsReader()
artifact_writer = writer.JsonArtifactsWriter()
self._TestArtifactsConversion(
artifact_reader, artifact_writer, 'definitions.json')
@test_lib.skipUnlessHasTestFile(['definitions.yaml'])
def testYamlWriter(self):
"""Tests conversion with the YamlArtifactsWriter."""
artifact_reader = reader.YamlArtifactsReader()
artifact_writer = writer.YamlArtifactsWriter()
self._TestArtifactsConversion(
artifact_reader, artifact_writer, 'definitions.yaml')
if __name__ == '__main__':
unittest.main()
|