File: python_test.py

package info (click to toggle)
ohcount 4.0.0-5
  • links: PTS, VCS
  • area: main
  • in suites: sid, trixie
  • size: 8,580 kB
  • sloc: ansic: 7,584; javascript: 3,300; ruby: 2,363; perl: 2,065; objc: 1,325; python: 445; pascal: 398; erlang: 350; sh: 275; lisp: 272; vhdl: 150; haskell: 149; asm: 127; cs: 124; awk: 98; java: 92; php: 77; tcl: 58; xml: 57; fortran: 54; modula3: 32; makefile: 30; ada: 30; jsp: 28; sql: 18; cobol: 13; ml: 9
file content (68 lines) | stat: -rw-r--r-- 2,210 bytes parent folder | download | duplicates (4)
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
59
60
61
62
63
64
65
66
67
68
import unittest
import ohcount

class TestSourceFileList(unittest.TestCase):

    def setUp(self):
        # must not raise
        self.sf_list = ohcount.SourceFileList(paths=['../../gestalt_files'])

    def assertStrOp(self, obj, not_equals):
        s = str(obj)
        if not_equals:
            for v in not_equals:
                self.assertTrue(s is not v)

    def assertHasAttr(self, obj, name, not_equals=None):
        self.assertTrue(hasattr(obj, name))
        if not_equals:
            val = getattr(obj, name)
            for v in not_equals:
                self.assertTrue(val is not v)

    def assertHasItem(self, obj, name, not_equals=None):
        self.assertTrue(name in obj)
        if not_equals:
            val = obj[name]
            for v in not_equals:
                self.assertTrue(val is not v)

    def assertHasItemAttr(self, obj, name, not_equals=None):
        self.assertHasAttr(obj, name, not_equals)
        self.assertHasItem(obj, name, not_equals)

    def assertHasKeys(self, obj, keylist):
        for k in keylist:
            self.assertTrue(k in obj)

    def assertListIsInstance(self, list, type):
        for o in list:
            self.assertTrue(isinstance(o, type))

    def assertHasItemAttrs(self, obj, list, not_equals=None):
        for name in list:
            self.assertHasItemAttr(obj, name, not_equals)

    def testList(self):
        self.assertTrue(len(self.sf_list) > 0)
        self.assertListIsInstance(self.sf_list, ohcount.SourceFile)

    def testStr(self):
        self.assertStrOp(self.sf_list, [None, ""])

    def testAnalyzeLanguages(self):
        locs = self.sf_list.analyze_languages()
        self.assertTrue(isinstance(locs, ohcount.LocList))
        names = ['code','comments','blanks','filecount','total']
        self.assertHasKeys(locs, names)
        self.assertHasItemAttrs(locs, names, [None, 0])
        self.assertListIsInstance(locs, ohcount.Loc)

    def testAddDirectory(self):
        self.sf_list.add_directory('../../detect_files') # must not raise

    def testAddFile(self):
        self.sf_list.add_file('../../src_licenses/academic_t1.c') # must not raise

if __name__ == '__main__':
    unittest.main()