File: writer_test.py

package info (click to toggle)
forensic-artifacts 20190113-1
  • links: PTS, VCS
  • area: main
  • in suites: buster
  • size: 712 kB
  • sloc: python: 1,669; sh: 166; makefile: 21
file content (58 lines) | stat: -rw-r--r-- 1,907 bytes parent folder | download
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()