⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 testing.py

📁 Welcome to MS4W, the no fuss installer for setting up MapServer on Microsoft Windows platforms. The
💻 PY
字号:
# $Id: testing.py,v 1.10 2005/07/27 17:42:28 sean Exp $## Project:  MapServer# Purpose:  xUnit style Python mapscript testing utilities# Author:   Sean Gillies, sgillies@frii.com## ===========================================================================# Copyright (c) 2004, Sean Gillies# # Permission is hereby granted, free of charge, to any person obtaining a# copy of this software and associated documentation files (the "Software"),# to deal in the Software without restriction, including without limitation# the rights to use, copy, modify, merge, publish, distribute, sublicense,# and/or sell copies of the Software, and to permit persons to whom the# Software is furnished to do so, subject to the following conditions:## The above copyright notice and this permission notice shall be included# in all copies or substantial portions of the Software.## THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS# OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,# FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL# THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER# LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING# FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER# DEALINGS IN THE SOFTWARE.# ===========================================================================## Purpose of this module is to export the locally built mapscript module# prior to installation, do some name normalization that allows testing of# the so-called next generation class names, and define some classes # useful to many test cases.## All test case modules should import mapscript from testing##     from testing import mapscript## ===========================================================================import osimport sysimport distutils.utilimport unittest# define the path to mapserver test dataTESTS_PATH = '../../../../tests'TESTMAPFILE = os.path.join(TESTS_PATH, 'test.map')XMARKS_IMAGE = os.path.join(TESTS_PATH, 'xmarks.png')HOME_IMAGE = os.path.join(TESTS_PATH, 'home.png')TEST_IMAGE = os.path.join(TESTS_PATH, 'test.png')INCOMING = '/ztmp/'# Put local build directory on head of python pathplatformdir = '-'.join((distutils.util.get_platform(),                         '.'.join(map(str, sys.version_info[0:2]))))sys.path.insert(0, os.path.join('../../build', 'lib.' + platformdir))# import mapscript from the local build directoryimport mapscript# ==========================================================================# Base testing classesclass MapscriptTestCase(unittest.TestCase):    def assertAlmostEqual(self, first, second, places=7):        """Copied from unittest for use with Python 2.1 or 2.2"""        if round(second-first, places) != 0:            raise AssertionError, \                '%s != %s within %s places' % (`first`, `second`, `places`)        class MapPrimitivesTestCase(MapscriptTestCase):    """Base class for testing primitives (points, lines, shapes)    in stand-alone mode"""    def addPointToLine(self, line, point):        """Using either the standard or next_generation_api"""        try:            line.add(point)        except AttributeError: # next_generation_api            line.addPoint(point)        except:            raise    def getPointFromLine(self, line, index):        """Using either the standard or next_generation_api"""        try:            point = line.get(index)            return point        except AttributeError: # next_generation_api            point = line.getPoint(index)            return point        except:            raise    def addLineToShape(self, shape, line):        """Using either the standard or next_generation_api"""        try:            shape.add(line)        except AttributeError: # next_generation_api            shape.addLine(line)        except:            raise    def getLineFromShape(self, shape, index):        """Using either the standard or next_generation_api"""        try:            line = shape.get(index)            return line        except AttributeError: # next_generation_api            line = shape.getLine(index)            return line        except:            raise    def assertPointsEqual(self, first, second):        self.assertAlmostEqual(first.x, second.x)        self.assertAlmostEqual(first.y, second.y)         def assertLinesEqual(self, first, second):        assert first.numpoints == second.numpoints        for i in range(first.numpoints):            point_first = self.getPointFromLine(first, i)            point_second = self.getPointFromLine(second, i)            self.assertPointsEqual(point_first, point_second)    def assertShapesEqual(self, first, second):        assert first.numlines == second.numlines        for i in range(first.numlines):            line_first = self.getLineFromShape(first, i)            line_second = self.getLineFromShape(second, i)            self.assertLinesEqual(line_first, line_second)    def assertRectsEqual(self, first, second):        self.assertAlmostEqual(first.minx, second.minx)        self.assertAlmostEqual(first.miny, second.miny)        self.assertAlmostEqual(first.maxx, second.maxx)        self.assertAlmostEqual(first.maxy, second.maxy)class MapTestCase(MapPrimitivesTestCase):    """Base class for testing with a map fixture"""    def setUp(self):        self.map = mapscript.mapObj(TESTMAPFILE)        #self.xmarks_image = xmarks_image        #self.test_image = test_image    def tearDown(self):        self.map = Noneclass MapZoomTestCase(MapPrimitivesTestCase):    "Testing new zoom* methods that we are adapting from the PHP MapScript"    def setUp(self):        self.mapobj1 = mapscript.mapObj(TESTMAPFILE)        # Change the extent for purposes of zoom testing        rect = mapscript.rectObj()        rect.minx, rect.miny, rect.maxx, rect.maxy = (-50.0, -50.0, 50.0, 50.0)        self.mapobj1.extent = rect        # Change height/width as well        self.mapobj1.width, self.mapobj1.height = (100, 100)    def tearDown(self):        self.mapobj1 = Noneclass ShapeObjTestCase(MapPrimitivesTestCase):    """Base class for shapeObj tests"""    pass

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -