Test Failed
Push — master ( eb8f9d...e6cb19 )
by Cyb3r
04:31 queued 10s
created

tests.test_main.MetaStalkTests.test_export_only()   A

Complexity

Conditions 3

Size

Total Lines 19
Code Lines 18

Duplication

Lines 19
Ratio 100 %

Importance

Changes 0
Metric Value
cc 3
eloc 18
nop 1
dl 19
loc 19
rs 9.5
c 0
b 0
f 0
1
"""Tests for MetaStalk.
2
"""
3
import unittest
4
from argparse import Namespace
5
import os
6
7
from MetaStalk import main
8
9
10
class MetaStalkTests(unittest.TestCase):
11
    """MetStalkTests.
12
13
    Test Suite for MetaStalk
14
15
    """
16
    def __init__(self, *args, **kwargs):
17
        super(MetaStalkTests, self).__init__(*args, **kwargs)
18
        self.filenames = ["Focal", "GPS", "Manufacturer", "Model", "Producer", "Stats", "Timestamp"]
19
20
    def test_empty_path(self):
21
        """Shows result for no path input."""
22
        with self.assertRaises(FileNotFoundError):
23
            main.start()
24
25
    def test_directory(self):
26
        """Results for a directory.
27
        """
28
        arguments = Namespace(
29
            files=['./ExamplePhotos/'],
30
            alphabetic=False,
31
            loglevel=30,
32
            test=True,
33
            export_only=False,
34
            no_open=True,
35
            export=None)
36
        metastalk = main.MetaStalk()
37
        self.assertEqual(metastalk.run(arguments), None)
38
39
    def test_files(self):
40
        """Results for files."""
41
        arguments = Namespace(
42
            files=['./ExamplePhotos/22-canon_tags.jpg', './ExamplePhotos/32-lens_data.jpeg'],
43
            alphabetic=True,
44
            no_open=True,
45
            export_only=False,
46
            loglevel=30,
47
            test=True,
48
            export=None)
49
        metastalk = main.MetaStalk()
50
        self.assertEqual(metastalk.run(arguments), None)
51
52 View Code Duplication
    def test_html_export(self):
0 ignored issues
show
Duplication introduced by
This code seems to be duplicated in your project.
Loading history...
53
        """Test to see html files got exported."""
54
        arguments = Namespace(
55
            files=['./ExamplePhotos/22-canon_tags.jpg', './ExamplePhotos/32-lens_data.jpeg'],
56
            loglevel=30,
57
            alphabetic=False,
58
            no_open=True,
59
            export_only=False,
60
            test=True,
61
            export="html",
62
            output="metastalk_exports")
63
        metastalk = main.MetaStalk()
64
        metastalk.run(arguments)
65
        test_passed = True
66
        for required_file in self.filenames:
67
            if not os.path.isfile(f"metastalk_exports/{required_file}.html"):
68
                print(f"missing file {required_file}")
69
                test_passed = False
70
        self.assertTrue(test_passed)
71
72
    def test_html_size(self):
73
        """Test to see html that the offline html files are bigger"""
74
        arguments = Namespace(
75
            files=['./ExamplePhotos/22-canon_tags.jpg', './ExamplePhotos/32-lens_data.jpeg'],
76
            loglevel=20,
77
            alphabetic=False,
78
            no_open=True,
79
            export_only=False,
80
            test=True,
81
            export="html_offline",
82
            output="metastalk_exports_offline")
83
        metastalk = main.MetaStalk()
84
        metastalk.run(arguments)
85
        test_passed = True
86
        for required_file in self.filenames:
87
            file_size_normal = os.stat(f"metastalk_exports/{required_file}.html").st_size
88
            file_size_offline = os.stat(f"metastalk_exports_offline/{required_file}.html").st_size
89
            if file_size_normal > file_size_offline:
90
                print(f"Wrong File Size for: {required_file}")
91
                test_passed = False
92
        self.assertTrue(test_passed)
93
94 View Code Duplication
    def test_orca_export(self):
0 ignored issues
show
Duplication introduced by
This code seems to be duplicated in your project.
Loading history...
95
        """Test for export fail."""
96
        test_passed = True
97
        arguments = Namespace(
98
            files=['./ExamplePhotos/'],
99
            loglevel=30,
100
            test=True,
101
            alphabetic=False,
102
            export_only=False,
103
            no_open=True,
104
            export="pdf",
105
            output="metastalk_exports")
106
        metastalk = main.MetaStalk()
107
        metastalk.run(arguments)
108
        for required_file in self.filenames:
109
            if not os.path.isfile(f"metastalk_exports/{required_file}.pdf"):
110
                print(f"missing file {required_file}")
111
                test_passed = False
112
        self.assertTrue(test_passed)
113
114 View Code Duplication
    def test_export_only(self):
0 ignored issues
show
Duplication introduced by
This code seems to be duplicated in your project.
Loading history...
115
        """Test to show that only export option works"""
116
        arguments = Namespace(
117
            files=['./ExamplePhotos/32-lens_data.jpeg'],
118
            loglevel=30,
119
            alphabetic=False,
120
            no_open=True,
121
            export_only=True,
122
            test=True,
123
            export="png",
124
            output="metastalk_exports")
125
        metastalk = main.MetaStalk()
126
        metastalk.run(arguments)
127
        test_passed = True
128
        for required_file in self.filenames:
129
            if not os.path.isfile(f"metastalk_exports/{required_file}.png"):
130
                print(f"missing file {required_file}")
131
                test_passed = False
132
        self.assertTrue(test_passed)
133