sbsv2/raptor/test/unit_suite/filter_html_unit.py
author Jon Chatten
Mon, 13 Sep 2010 14:04:04 +0100
changeset 641 8dd670a9f34f
permissions -rw-r--r--
sbs version 2.15.2
Ignore whitespace changes - Everywhere: Within whitespace: At end of lines:
641
8dd670a9f34f sbs version 2.15.2
Jon Chatten
parents:
diff changeset
     1
8dd670a9f34f sbs version 2.15.2
Jon Chatten
parents:
diff changeset
     2
# Copyright (c) 2010 Nokia Corporation and/or its subsidiary(-ies).
8dd670a9f34f sbs version 2.15.2
Jon Chatten
parents:
diff changeset
     3
# All rights reserved.
8dd670a9f34f sbs version 2.15.2
Jon Chatten
parents:
diff changeset
     4
# This component and the accompanying materials are made available
8dd670a9f34f sbs version 2.15.2
Jon Chatten
parents:
diff changeset
     5
# under the terms of the License "Eclipse Public License v1.0"
8dd670a9f34f sbs version 2.15.2
Jon Chatten
parents:
diff changeset
     6
# which accompanies this distribution, and is available
8dd670a9f34f sbs version 2.15.2
Jon Chatten
parents:
diff changeset
     7
# at the URL "http://www.eclipse.org/legal/epl-v10.html".
8dd670a9f34f sbs version 2.15.2
Jon Chatten
parents:
diff changeset
     8
8dd670a9f34f sbs version 2.15.2
Jon Chatten
parents:
diff changeset
     9
'''
8dd670a9f34f sbs version 2.15.2
Jon Chatten
parents:
diff changeset
    10
Test the HTML class in plugins/filter_html.py
8dd670a9f34f sbs version 2.15.2
Jon Chatten
parents:
diff changeset
    11
'''
8dd670a9f34f sbs version 2.15.2
Jon Chatten
parents:
diff changeset
    12
8dd670a9f34f sbs version 2.15.2
Jon Chatten
parents:
diff changeset
    13
import os
8dd670a9f34f sbs version 2.15.2
Jon Chatten
parents:
diff changeset
    14
import shutil
8dd670a9f34f sbs version 2.15.2
Jon Chatten
parents:
diff changeset
    15
import sys
8dd670a9f34f sbs version 2.15.2
Jon Chatten
parents:
diff changeset
    16
import unittest
8dd670a9f34f sbs version 2.15.2
Jon Chatten
parents:
diff changeset
    17
8dd670a9f34f sbs version 2.15.2
Jon Chatten
parents:
diff changeset
    18
test_data = os.path.join(os.getcwd(),"unit_suite","data","html_filter")
8dd670a9f34f sbs version 2.15.2
Jon Chatten
parents:
diff changeset
    19
8dd670a9f34f sbs version 2.15.2
Jon Chatten
parents:
diff changeset
    20
# add the plugins directory to the python path
8dd670a9f34f sbs version 2.15.2
Jon Chatten
parents:
diff changeset
    21
sys.path.append(os.path.join(os.environ['SBS_HOME'], "python", "plugins"))
8dd670a9f34f sbs version 2.15.2
Jon Chatten
parents:
diff changeset
    22
# so that we can import the filter module directly
8dd670a9f34f sbs version 2.15.2
Jon Chatten
parents:
diff changeset
    23
import filter_html
8dd670a9f34f sbs version 2.15.2
Jon Chatten
parents:
diff changeset
    24
import generic_path
8dd670a9f34f sbs version 2.15.2
Jon Chatten
parents:
diff changeset
    25
8dd670a9f34f sbs version 2.15.2
Jon Chatten
parents:
diff changeset
    26
class Mock(object):
8dd670a9f34f sbs version 2.15.2
Jon Chatten
parents:
diff changeset
    27
	'''empty object for attaching arbitrary attributes and functions.'''
8dd670a9f34f sbs version 2.15.2
Jon Chatten
parents:
diff changeset
    28
	pass
8dd670a9f34f sbs version 2.15.2
Jon Chatten
parents:
diff changeset
    29
	
8dd670a9f34f sbs version 2.15.2
Jon Chatten
parents:
diff changeset
    30
class TestFilterHtml(unittest.TestCase):
8dd670a9f34f sbs version 2.15.2
Jon Chatten
parents:
diff changeset
    31
	'''test cases for the HTML log filter.
8dd670a9f34f sbs version 2.15.2
Jon Chatten
parents:
diff changeset
    32
	
8dd670a9f34f sbs version 2.15.2
Jon Chatten
parents:
diff changeset
    33
	This is a minimal set of tests for starters. As people start using this
8dd670a9f34f sbs version 2.15.2
Jon Chatten
parents:
diff changeset
    34
	filter and reporting bugs and niggles we can add test cases here to
8dd670a9f34f sbs version 2.15.2
Jon Chatten
parents:
diff changeset
    35
	avoid regressions.'''
8dd670a9f34f sbs version 2.15.2
Jon Chatten
parents:
diff changeset
    36
	
8dd670a9f34f sbs version 2.15.2
Jon Chatten
parents:
diff changeset
    37
	def setUp(self):
8dd670a9f34f sbs version 2.15.2
Jon Chatten
parents:
diff changeset
    38
		self.mock_params = Mock()
8dd670a9f34f sbs version 2.15.2
Jon Chatten
parents:
diff changeset
    39
		self.mock_params.configPath = [generic_path.Path("config")]
8dd670a9f34f sbs version 2.15.2
Jon Chatten
parents:
diff changeset
    40
		self.mock_params.home = generic_path.Path(test_data)
8dd670a9f34f sbs version 2.15.2
Jon Chatten
parents:
diff changeset
    41
		self.mock_params.logFileName = generic_path.Path("tmp/foo")
8dd670a9f34f sbs version 2.15.2
Jon Chatten
parents:
diff changeset
    42
		self.mock_params.timestring = "now"
8dd670a9f34f sbs version 2.15.2
Jon Chatten
parents:
diff changeset
    43
		
8dd670a9f34f sbs version 2.15.2
Jon Chatten
parents:
diff changeset
    44
		# where do we expect the output to be written
8dd670a9f34f sbs version 2.15.2
Jon Chatten
parents:
diff changeset
    45
		self.html_dir = str(self.mock_params.logFileName) + "_html"
8dd670a9f34f sbs version 2.15.2
Jon Chatten
parents:
diff changeset
    46
		
8dd670a9f34f sbs version 2.15.2
Jon Chatten
parents:
diff changeset
    47
	def tearDown(self):
8dd670a9f34f sbs version 2.15.2
Jon Chatten
parents:
diff changeset
    48
		'''remove all the generated output files and directories.'''
8dd670a9f34f sbs version 2.15.2
Jon Chatten
parents:
diff changeset
    49
		if os.path.isdir(self.html_dir):
8dd670a9f34f sbs version 2.15.2
Jon Chatten
parents:
diff changeset
    50
			shutil.rmtree(self.html_dir)
8dd670a9f34f sbs version 2.15.2
Jon Chatten
parents:
diff changeset
    51
	
8dd670a9f34f sbs version 2.15.2
Jon Chatten
parents:
diff changeset
    52
	def testPass(self):
8dd670a9f34f sbs version 2.15.2
Jon Chatten
parents:
diff changeset
    53
		'''are the setUp and tearDown methods sane.'''
8dd670a9f34f sbs version 2.15.2
Jon Chatten
parents:
diff changeset
    54
		pass
8dd670a9f34f sbs version 2.15.2
Jon Chatten
parents:
diff changeset
    55
	
8dd670a9f34f sbs version 2.15.2
Jon Chatten
parents:
diff changeset
    56
	def testConstructor(self):
8dd670a9f34f sbs version 2.15.2
Jon Chatten
parents:
diff changeset
    57
		'''simply construct an HTML object.'''
8dd670a9f34f sbs version 2.15.2
Jon Chatten
parents:
diff changeset
    58
		html = filter_html.HTML()
8dd670a9f34f sbs version 2.15.2
Jon Chatten
parents:
diff changeset
    59
8dd670a9f34f sbs version 2.15.2
Jon Chatten
parents:
diff changeset
    60
	def testMinimalLog(self):
8dd670a9f34f sbs version 2.15.2
Jon Chatten
parents:
diff changeset
    61
		'''process a minimal log file.'''
8dd670a9f34f sbs version 2.15.2
Jon Chatten
parents:
diff changeset
    62
		html = filter_html.HTML()
8dd670a9f34f sbs version 2.15.2
Jon Chatten
parents:
diff changeset
    63
		self.assertTrue( html.open(self.mock_params) )
8dd670a9f34f sbs version 2.15.2
Jon Chatten
parents:
diff changeset
    64
		self.assertTrue( html.write('<?xml version="1.0" encoding="ISO-8859-1" ?>\n') )
8dd670a9f34f sbs version 2.15.2
Jon Chatten
parents:
diff changeset
    65
		self.assertTrue( html.write('<buildlog sbs_version="2.99.9 [hi]">') )
8dd670a9f34f sbs version 2.15.2
Jon Chatten
parents:
diff changeset
    66
		self.assertTrue( html.write('</buildlog>') )
8dd670a9f34f sbs version 2.15.2
Jon Chatten
parents:
diff changeset
    67
		self.assertTrue( html.close() )
8dd670a9f34f sbs version 2.15.2
Jon Chatten
parents:
diff changeset
    68
		
8dd670a9f34f sbs version 2.15.2
Jon Chatten
parents:
diff changeset
    69
		self.assertTrue( os.path.isfile(self.html_dir + "/index.html") )
8dd670a9f34f sbs version 2.15.2
Jon Chatten
parents:
diff changeset
    70
		self.assertTrue( os.path.isfile(self.html_dir + "/style.css") )
8dd670a9f34f sbs version 2.15.2
Jon Chatten
parents:
diff changeset
    71
		
8dd670a9f34f sbs version 2.15.2
Jon Chatten
parents:
diff changeset
    72
# run all the tests
8dd670a9f34f sbs version 2.15.2
Jon Chatten
parents:
diff changeset
    73
8dd670a9f34f sbs version 2.15.2
Jon Chatten
parents:
diff changeset
    74
from raptor_tests import SmokeTest
8dd670a9f34f sbs version 2.15.2
Jon Chatten
parents:
diff changeset
    75
8dd670a9f34f sbs version 2.15.2
Jon Chatten
parents:
diff changeset
    76
def run():
8dd670a9f34f sbs version 2.15.2
Jon Chatten
parents:
diff changeset
    77
	t = SmokeTest()
8dd670a9f34f sbs version 2.15.2
Jon Chatten
parents:
diff changeset
    78
	t.name = "filter_html_unit"
8dd670a9f34f sbs version 2.15.2
Jon Chatten
parents:
diff changeset
    79
8dd670a9f34f sbs version 2.15.2
Jon Chatten
parents:
diff changeset
    80
	tests = unittest.makeSuite(TestFilterHtml)
8dd670a9f34f sbs version 2.15.2
Jon Chatten
parents:
diff changeset
    81
	result = unittest.TextTestRunner(verbosity=2).run(tests)
8dd670a9f34f sbs version 2.15.2
Jon Chatten
parents:
diff changeset
    82
8dd670a9f34f sbs version 2.15.2
Jon Chatten
parents:
diff changeset
    83
	if result.wasSuccessful():
8dd670a9f34f sbs version 2.15.2
Jon Chatten
parents:
diff changeset
    84
		t.result = SmokeTest.PASS
8dd670a9f34f sbs version 2.15.2
Jon Chatten
parents:
diff changeset
    85
	else:
8dd670a9f34f sbs version 2.15.2
Jon Chatten
parents:
diff changeset
    86
		t.result = SmokeTest.FAIL
8dd670a9f34f sbs version 2.15.2
Jon Chatten
parents:
diff changeset
    87
8dd670a9f34f sbs version 2.15.2
Jon Chatten
parents:
diff changeset
    88
	return t