Completed
Pull Request — master (#1487)
by Lasse
01:38
created

coalib.tests.output.raise_permission_error()   A

Complexity

Conditions 1

Size

Total Lines 2

Duplication

Lines 0
Ratio 0 %
Metric Value
cc 1
dl 0
loc 2
rs 10
1
import os
2
from pyprint.NullPrinter import NullPrinter
3
import unittest
4
5
from coalib.output.printers.LogPrinter import LogPrinter
6
from coalib.output.Tagging import (get_tag_path,
7
                                   tag_results,
8
                                   load_tagged_results,
9
                                   delete_tagged_results)
10
11
12
def raise_permission_error(*args, **kwargs):
13
    raise PermissionError
14
15
16
class TaggingTest(unittest.TestCase):
17
18
    def setUp(self):
19
        self.log_printer = LogPrinter(NullPrinter())
20
21
    def test_get_tag_path(self):
22
        self.assertEqual(get_tag_path("a", "b", self.log_printer),
23
                         get_tag_path("a", "b", self.log_printer))
24
        self.assertNotEqual(get_tag_path("a", "b", self.log_printer),
25
                            get_tag_path("a", "c", self.log_printer))
26
        self.assertNotEqual(get_tag_path("a", "b", self.log_printer),
27
                            get_tag_path("c", "b", self.log_printer))
28
29
    def test_tag_results(self):
30
        path = get_tag_path("test_tag_create", "test_path", self.log_printer)
31
        try:
32
            tag_results("test_tag_create", "test_path", {}, self.log_printer)
33
            results = load_tagged_results("test_tag_create",
34
                                          "test_path",
35
                                          self.log_printer)
36
            self.assertEqual(results, {})
37
        finally:
38
            delete_tagged_results("test_tag_create",
39
                                  "test_path",
40
                                  self.log_printer)
41
42
        none_path = get_tag_path("None", "test_path", self.log_printer)
43
        tag_results("None", "test_path", {}, self.log_printer)
44
        self.assertFalse(os.path.exists(none_path))
45
        results = load_tagged_results("None", "test_path", self.log_printer)
46
        self.assertEquals(results, None)
47
48
    def test_delete_tagged_results_no_file(self):
49
        path = get_tag_path("test_tag_del", "test_path", self.log_printer)
50
        none_path = get_tag_path("None", "test_path", self.log_printer)
51
        open(path, "a").close()
52
        open(none_path, "a").close()
53
        delete_tagged_results("None", "test_path", self.log_printer)
54
        self.assertTrue(os.path.exists(none_path))
55
56
        delete_tagged_results("test_tag_del", "test_path", self.log_printer)
57
        self.assertFalse(os.path.exists(path))
58
59
        delete_tagged_results("test_tag_del2", "test_path", self.log_printer)
60
        self.assertFalse(os.path.exists(path))
61
62
        os.remove(none_path)
63
64
    def test_permission_error(self):
65
        old_makedirs = os.makedirs
66
        os.makedirs = raise_permission_error
67
68
        self.assertEqual(get_tag_path("a", "b", self.log_printer), None)
69
        tag_results("test_tag", "test_path", {}, self.log_printer)
70
        results = load_tagged_results("test_tag",
71
                                      "test_path",
72
                                      self.log_printer)
73
        self.assertEqual(results, None)
74
75
        os.makedirs = old_makedirs
76