[go: up one dir, main page]

File: all.py

package info (click to toggle)
sogo 1.3.16-1
  • links: PTS, VCS
  • area: main
  • in suites: wheezy
  • size: 21,620 kB
  • sloc: objc: 99,218; python: 4,840; sh: 1,217; perl: 861; makefile: 132; sql: 53; php: 43; ansic: 4
file content (64 lines) | stat: -rwxr-xr-x 2,186 bytes parent folder | download | duplicates (7)
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
#!/usr/bin/python

import os, sys, unittest, getopt, traceback, time
import preferences
import sogotests
import unittest

if __name__ == "__main__":
    unittest._TextTestResult.oldStartTest = unittest._TextTestResult.startTest
    unittest._TextTestResult.startTest = sogotests.UnitTestTextTestResultNewStartTest
    unittest._TextTestResult.stopTest = sogotests.UnitTestTextTestResultNewStopTest

    loader = unittest.TestLoader()
    modules = []

    languages = preferences.SOGoSupportedLanguages

    # We can disable testing all languages
    testLanguages = False
    opts, args = getopt.getopt (sys.argv[1:], [], ["enable-languages"])
    for o, a in opts:
        if o == "--enable-languages":
            testLanguages = True


    for mod in os.listdir("."):
        if mod.startswith("test-") and mod.endswith(".py"):
            modules.append(mod[:-3])
            __import__(mod[:-3])

    if len(modules) > 0:
        suite = loader.loadTestsFromNames(modules)
        print "%d tests in modules: '%s'" % (suite.countTestCases(),
                                             "', '".join(modules))
        runner = unittest.TextTestRunner(verbosity=2)

        if testLanguages:
            prefs = preferences.preferences()
            # Get the current language
            userLanguageString = prefs.get ("SOGoLanguage")
            if userLanguageString:
                userLanguage = languages.index (userLanguageString)
            else:
                userLanguage = languages.index ("English")

            for i in range (0, len (languages)):
                try:
                    prefs.set ("SOGoLanguage", i)
                except Exception, inst:
                    print '-' * 60
                    traceback.print_exc ()
                    print '-' * 60
                
                print "Running test in %s (%d/%d)" % \
                    (languages[i], i + 1, len (languages))
                runner.verbosity = 2
                runner.run(suite)
            # Revert to the original language
            prefs.set ("SOGoLanguage", userLanguage)
        else:
            runner.run(suite)

    else:
        print "No test available."