old_contents: #!/usr/bin/python
  # -*- coding: utf-8 -*-
  #  Licensed under the Apache License, Version 2.0 (the "License");
  #  you may not use this file except in compliance with the License.
  #  You may obtain a copy of the License at
  #
  #    http://www.apache.org/licenses/LICENSE-2.0
  #
  #  Unless required by applicable law or agreed to in writing, software
  #  distributed under the License is distributed on an "AS IS" BASIS,
  #  WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
  #  See the License for the specific language governing permissions and
  #  limitations under the License.
  
  import os
  import sys
  import glob
  import traceback
  from xml.etree.ElementTree import ElementTree
  
  def print_detail_information(testcase, fail_or_error):
      print "-" * 50
      print "classname: %s / testname: %s" % (testcase.get("classname"), testcase.get("name"))
      print fail_or_error.text
      stdout = testcase.find("system-out")
      if stdout != None:
          print "-" * 20, "system-out", "-"*20
          print stdout.text
      stderr = testcase.find("system-err")
      if stderr != None:
          print "-" * 20, "system-err", "-"*20
          print stderr.text
      print "-" * 50
  
  
  def print_error_reports_from_report_file(file_path):
      tree = ElementTree()
      try:
          tree.parse(file_path)
      except:
          print "-" * 50
          print "Error parsing %s"%file_path
          f = open(file_path, "r");
          print f.read();
          print "-" * 50
          return
  
      testcases = tree.findall(".//testcase")
      for testcase in testcases:
          error = testcase.find("error")
          if error is not None:
              print_detail_information(testcase, error)
  
          fail = testcase.find("fail")
          if fail is not None:
              print_detail_information(testcase, fail)
  
  
  def main(report_dir_path):
      for test_report in glob.iglob(report_dir_path + '/*.xml'):
          file_path = os.path.abspath(test_report)
          try:
              print "Checking %s" % test_report
              print_error_reports_from_report_file(file_path)
          except Exception, e:
              print "Error while reading report file, %s" % file_path
              print "Exception: %s" % e
              traceback.print_exc()
  
  
  if __name__ == "__main__":
      if sys.argv < 2:
          print "Usage: %s [report dir path]" % sys.argv[0]
          sys.exit(1)
  
      main(sys.argv[1])
  
new_contents: #!/usr/bin/python
  # -*- coding: utf-8 -*-
  #  Licensed under the Apache License, Version 2.0 (the "License");
  #  you may not use this file except in compliance with the License.
  #  You may obtain a copy of the License at
  #
  #    http://www.apache.org/licenses/LICENSE-2.0
  #
  #  Unless required by applicable law or agreed to in writing, software
  #  distributed under the License is distributed on an "AS IS" BASIS,
  #  WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
  #  See the License for the specific language governing permissions and
  #  limitations under the License.
  
  import os
  import sys
  import glob
  import traceback
  from xml.etree.ElementTree import ElementTree
  
  def print_detail_information(testcase, fail_or_error):
      print "-" * 50
      print "classname: %s / testname: %s" % (testcase.get("classname"), testcase.get("name"))
      print fail_or_error.text
      stdout = testcase.find("system-out")
      if stdout != None:
          print "-" * 20, "system-out", "-"*20
          print stdout.text
      stderr = testcase.find("system-err")
      if stderr != None:
          print "-" * 20, "system-err", "-"*20
          print stderr.text
      print "-" * 50
  
  
  def print_error_reports_from_report_file(file_path):
      tree = ElementTree()
      try:
          tree.parse(file_path)
      except:
          print "-" * 50
          print "Error parsing %s"%file_path
          f = open(file_path, "r");
          print f.read();
          print "-" * 50
          return
  
      testcases = tree.findall(".//testcase")
      for testcase in testcases:
          error = testcase.find("error")
          if error is not None:
              print_detail_information(testcase, error)
  
          fail = testcase.find("fail")
          if fail is not None:
              print_detail_information(testcase, fail)
  
          failure = testcase.find("failure")
          if failure is not None:
              print_detail_information(testcase, failure)
  
  
  def main(report_dir_path):
      for test_report in glob.iglob(report_dir_path + '/*.xml'):
          file_path = os.path.abspath(test_report)
          try:
              print "Checking %s" % test_report
              print_error_reports_from_report_file(file_path)
          except Exception, e:
              print "Error while reading report file, %s" % file_path
              print "Exception: %s" % e
              traceback.print_exc()
  
  
  if __name__ == "__main__":
      if sys.argv < 2:
          print "Usage: %s [report dir path]" % sys.argv[0]
          sys.exit(1)
  
      main(sys.argv[1])
  
subject: print the information of testcase which is on failure