David Black avatar David Black committed 3c08f08

add a setup.py file - so that this software can be installed and rename JunitOutput.py to __init__.py under junit_xml_output/

Signed-off-by: David Black <dblack@atlassian.com>;

Comments (0)

Files changed (3)

JunitOutput.py

-#!/usr/bin/env python
-import xml.etree.ElementTree as ET
-import xml.dom.minidom
-
-class JunitXml(object):
-    """ A class which is designed to create a junit test xml file.
-        Note: currently this class is designed to return the junit xml file
-        in a string format (through the dump method).
-    """
-    def __init__(self, testsuit_name, test_cases, total_tests=None, total_failures=None):
-        self.testsuit_name = testsuit_name
-        self.test_cases = test_cases
-        self.failing_test_cases = self._get_failing_test_cases()
-
-        self.total_tests = total_tests
-        self.total_failures = total_failures
-
-        if total_tests is None:
-            self.total_tests = len(self.test_cases)
-        if total_failures is None:
-            self.total_failures = len(self.failing_test_cases)
-
-        self.root = ET.Element("testsuite", {'name' : str(self.testsuit_name),
-            "failures": str(self.total_failures), "tests" : str(self.total_tests)})
-        self.build_junit_xml()
-
-    def _get_failing_test_cases(self):
-        return set([case for case in self.test_cases if case.is_failure() ])
-
-    def build_junit_xml(self):
-        """ create the xml tree from the given testsuite name and testcase """
-        for case in self.test_cases:
-            test_case_element = ET.SubElement(self.root, "testcase", \
-                {'name' : str(case.name)} )
-            if case.is_failure():
-                failure_element = ET.Element("failure")
-                failure_element.text = case.contents
-                test_case_element.append(failure_element)
-
-    def dump(self, pretty=True):
-        """ returns a string representation of the junit xml tree. """
-        out = ET.tostring(self.root)
-        if pretty:
-            dom = xml.dom.minidom.parseString(out)
-            out = dom.toprettyxml()
-        return out
-
-class TestCase(object):
-    """ A junit test case representation class.
-        The JunitXml accepts a set of these and uses them to create
-        the junit test xml tree
-    """
-    def __init__(self, name, contents, test_type=""):
-        self.name = name
-        self.contents = contents
-        self.test_type = test_type
-
-    def is_failure(self):
-        """ returns true if this test case is a 'failure' type """
-        return self.test_type == "failure"
-
-def main():
-    """ a short example of how to use this module """
-    test_cases = []
-    for i in range(0, 5):
-        type_c = ""
-        if i % 2 == 0:
-            type_c = "failure"
-        test_cases.append(TestCase(i, str(i) + "contents", type_c) )
-
-    junit_xml = JunitXml("demo test example", test_cases)
-    print junit_xml.dump()
-
-
-if __name__=="__main__":
-    main()

junit_xml_output/__init__.py

+#!/usr/bin/env python
+import xml.etree.ElementTree as ET
+import xml.dom.minidom
+
+class JunitXml(object):
+    """ A class which is designed to create a junit test xml file.
+        Note: currently this class is designed to return the junit xml file
+        in a string format (through the dump method).
+    """
+    def __init__(self, testsuit_name, test_cases, total_tests=None, total_failures=None):
+        self.testsuit_name = testsuit_name
+        self.test_cases = test_cases
+        self.failing_test_cases = self._get_failing_test_cases()
+
+        self.total_tests = total_tests
+        self.total_failures = total_failures
+
+        if total_tests is None:
+            self.total_tests = len(self.test_cases)
+        if total_failures is None:
+            self.total_failures = len(self.failing_test_cases)
+
+        self.root = ET.Element("testsuite", {'name' : str(self.testsuit_name),
+            "failures": str(self.total_failures), "tests" : str(self.total_tests)})
+        self.build_junit_xml()
+
+    def _get_failing_test_cases(self):
+        return set([case for case in self.test_cases if case.is_failure() ])
+
+    def build_junit_xml(self):
+        """ create the xml tree from the given testsuite name and testcase """
+        for case in self.test_cases:
+            test_case_element = ET.SubElement(self.root, "testcase", \
+                {'name' : str(case.name)} )
+            if case.is_failure():
+                failure_element = ET.Element("failure")
+                failure_element.text = case.contents
+                test_case_element.append(failure_element)
+
+    def dump(self, pretty=True):
+        """ returns a string representation of the junit xml tree. """
+        out = ET.tostring(self.root)
+        if pretty:
+            dom = xml.dom.minidom.parseString(out)
+            out = dom.toprettyxml()
+        return out
+
+class TestCase(object):
+    """ A junit test case representation class.
+        The JunitXml accepts a set of these and uses them to create
+        the junit test xml tree
+    """
+    def __init__(self, name, contents, test_type=""):
+        self.name = name
+        self.contents = contents
+        self.test_type = test_type
+
+    def is_failure(self):
+        """ returns true if this test case is a 'failure' type """
+        return self.test_type == "failure"
+
+def main():
+    """ a short example of how to use this module """
+    test_cases = []
+    for i in range(0, 5):
+        type_c = ""
+        if i % 2 == 0:
+            type_c = "failure"
+        test_cases.append(TestCase(i, str(i) + "contents", type_c) )
+
+    junit_xml = JunitXml("demo test example", test_cases)
+    print junit_xml.dump()
+
+
+if __name__=="__main__":
+    main()
+#!/usr/bin/env python
+from setuptools import setup, find_packages
+import os
+
+def read(fname):
+	return open(os.path.join(os.path.dirname(__file__), fname)).read()
+
+setup(name='python-junit-xml-output-module',
+	author='David Black',
+	author_email='dblack@atlassian.com',
+	url='https://bitbucket.org/db_atlass/python-junit-xml-output-module',
+	packages=find_packages(),
+	description=read('README'),
+	long_description=read('README'),
+	version = "0.0.1"
+	)
+
Tip: Filter by directory path e.g. /media app.js to search for public/media/app.js.
Tip: Use camelCasing e.g. ProjME to search for ProjectModifiedEvent.java.
Tip: Filter by extension type e.g. /repo .js to search for all .js files in the /repo directory.
Tip: Separate your search with spaces e.g. /ssh pom.xml to search for src/ssh/pom.xml.
Tip: Use ↑ and ↓ arrow keys to navigate and return to view the file.
Tip: You can also navigate files with Ctrl+j (next) and Ctrl+k (previous) and view the file with Ctrl+o.
Tip: You can also navigate files with Alt+j (next) and Alt+k (previous) and view the file with Alt+o.