stderrobj.write()   A
last analyzed

Complexity

Conditions 1

Size

Total Lines 2

Duplication

Lines 0
Ratio 0 %

Importance

Changes 1
Bugs 0 Features 1
Metric Value
c 1
b 0
f 1
dl 0
loc 2
rs 10
cc 1
1
import sublime
2
import sys
3
import tempfile
4
import os, os.path
5
from unittest import TestCase
6
7
version = sublime.version()
8
9
10
class stderrobj:
11
    def __init__(self):
12
        self.buff=''
13
        self.__console__=sys.stderr
14
        sys.stderr = self
15
        
16
    def write(self, output_stream):
17
        self.buff+=output_stream
18
19
    def empty(self):
20
        return self.buff == ''
21
22
    def reset(self):
23
        if self.__console__ is not None:
24
            sys.stderr = self.__console__
25
            self.__console__ = None
26
27
28
# for testing sublime command
29
class TestClassName(TestCase):
30
31
    def setUp(self):
32
        self.view = sublime.active_window().new_file()
33
        # make sure we have a window to work with
34
        s = sublime.load_settings("Preferences.sublime-settings")
35
        s.set("close_windows_when_empty", False)
36
37
        self.packagename = 'testclassname'
38
        self.classname = 'testclassname.classname'
39
40
        basedir = tempfile.TemporaryDirectory().name
41
        filedir = basedir + '/' + self.packagename
42
        filename = filedir + '/classname.txt'
43
44
        os.makedirs(filedir, exist_ok = True)
45
        with open(filename, 'w') as f:
46
            f.write('this is test file')
47
48
        # add an folders to sublime text
49
        d = {"folders":[{"path":basedir}]}
50
        sublime.active_window().set_project_data(d)
51
52
        self.view = sublime.active_window().open_file(filename)
53
        self.view.window().focus_view(self.view)
54
55
        self.obj = stderrobj()
56
57
    def tearDown(self):
58
        self.obj.reset()
59
        if self.view:
60
            self.view.set_scratch(True)
61
            self.view.window().focus_view(self.view)
62
            self.view.window().run_command("close_file")
63
64
        self.assertTrue(self.obj.empty(), self.obj.buff)
65
66
    def test_copy_package(self):
67
        sublime.set_clipboard("this is clipboard text");
68
        self.view.window().run_command("classname_copy_package")
69
        self.assertEqual(self.packagename, sublime.get_clipboard())
70
71
    def test_copy_classname(self):
72
        sublime.set_clipboard("this is clipboard text");
73
        self.view.window().run_command("classname_copy")
74
        self.assertEqual(self.classname, sublime.get_clipboard())
75
76