/[thuban]/branches/WIP-pyshapelib-bramz/ChangeLog
ViewVC logotype

Diff of /branches/WIP-pyshapelib-bramz/ChangeLog

Parent Directory Parent Directory | Revision Log Revision Log | View Patch Patch

revision 1553 by bh, Wed Aug 6 17:21:47 2003 UTC revision 1773 by bh, Mon Oct 6 11:29:01 2003 UTC
# Line 1  Line 1 
1    2003-10-06  Bernhard Herzog  <[email protected]>
2    
3            * test/test_viewport.py (MockView): New class derived from
4            ViewPort with a mock implementation of GetTextExtent to be used in
5            the test cases
6            (ViewPortTest.setUp): Use MockView instead of ViewPort
7    
8            * Thuban/UI/viewport.py (ViewPort.GetTextExtent): Turn this method
9            into what would be a "pure virtual function" in C++: always raise
10            NotImplementedError. Mock implementations for test cases don't
11            belong into the real code
12    
13    2003-10-02  Bernhard Herzog  <[email protected]>
14    
15            * test/test_layer.py (TestLayer.test_empty_layer): Explicitly
16            close the dbf file we create so that it's contents have been
17            written properly.
18    
19            * libraries/shapelib/shptree.c, libraries/shapelib/shpopen.c,
20            libraries/shapelib/shapefil.h, libraries/shapelib/dbfopen.c:
21            Update to shapelib 1.2.10
22    
23    2003-10-01  Jan-Oliver Wagner <[email protected]>
24    
25            * Thuban/UI/tree.py, Thuban/UI/main.py: Remove the #! line as
26            it annoys lintian which warns about these files not being
27            executable. The #! isn't necessary here since if you absolutely
28            must execute them you can always say "python <filename>".
29    
30    2003-09-26  Bernhard Herzog  <[email protected]>
31    
32            * Thuban/Model/classgen.py (GenQuantiles0): Removed since it's
33            only used in GREAT-ER but not used in Thuban itself. When GREAT-ER
34            is ported to a newer the import will fail, so it should be noticed
35            immediately that this function is gone.
36            Fixes RT#1919
37    
38    2003-09-26  Bernhard Herzog  <[email protected]>
39    
40            Add a DTD for the projection files and make thuban write valid
41            projection files
42    
43            * Resources/XML/projfile.dtd: New. DTD for thuban's projection
44            files
45    
46            * Thuban/Model/resource.py (ProjFileSaver.write): Use
47            'projectionlist' as the name in the document type declaration so
48            that it matches the element type of the root element.
49    
50            * test/test_proj.py (sample_projfile, sample_projfile2): Use
51            'projectionlist' as the name in the document type declaration just
52            as it is done now in the files thuban would write
53            (sample_projfile, sample_projfile_data): Fix spelling of
54            "Mercator"
55            (TestProjFile.doTestWrite): Validate the written and the expected
56            XML data
57            (TestProjFile): Derive from ValidationTest so that we can run xml
58            validation tests
59    
60    2003-09-24  Bernhard Herzog  <[email protected]>
61    
62            * Thuban/UI/renderer.py (ExportRenderer.render_legend): Do not
63            modify the list returned by map.Layers() in place since it is the
64            actual list of layers used by the map.
65    
66    2003-09-23  Jan-Oliver Wagner <[email protected]>
67    
68            * Doc/manual/thuban-manual.xml: Added subsection to chapter
69            Extensions to describe the extensions coming with the Thuban
70            standard package (gns2shp and importAPR).
71    
72    2003-09-23  Bernhard Herzog  <[email protected]>
73    
74            * libraries/thuban/wxproj.cpp (project_point): if there's an
75            inverse but no forward projection, convert to degrees after
76            applying the inverse projection. Fixes RT#2096
77    
78            * test/test_wxproj.py: New. Test cases for wxproj.so. One test
79            implicitly tests for the fix to RT#2096
80    
81            * test/support.py (FloatComparisonMixin.assertFloatSeqEqual):
82            Check that the sequences have the same lengths
83    
84            * Resources/Projections/defaults.proj (Geographic projection): Use
85            a much more precise value for the to_meter attribute.
86    
87    2003-09-22  Bernhard Herzog  <[email protected]>
88    
89            * test/support.py (initthuban): Make sure to unset the LANG env.
90            var. so that tests that compare translated strings work. Solves RT
91            #2094
92    
93    2003-09-22  Jan-Oliver Wagner <[email protected]>
94    
95            Small improvement of APR import.
96    
97            * Extensions/importAPR/test/test_apr.py (aprTest.test_LClass):
98            Added tests for text-ranges.
99    
100            * Extensions/importAPR/apr.py (APR_LClass.GetThubanRange): Now
101            returns a string object if the range is based on text.
102    
103            * Extensions/importAPR/importAPR.py (import_apr_dialog): Unified
104            range retrieval.
105    
106    2003-09-22  Jan-Oliver Wagner <[email protected]>
107    
108            Initial version of the importAPR extension which is in
109            experimental state.
110    
111            * /Extensions/importAPR/, /Extensions/importAPR/samples/,
112            /Extensions/importAPR/test/: New directories.
113    
114            * /Extensions/importAPR/samples/README: New: Howto load the samples.
115    
116            * /Extensions/importAPR/samples/iceland.apr: New: A sample APR
117            file which refers to the Thuban Iceland demo data.
118    
119            * /Extensions/importAPR/test/README: New: Howto execute the tests.
120    
121            * /Extensions/importAPR/test/test_apr.py: New: Tests for APR classes.
122    
123            * /Extensions/importAPR/apr.py: New: Classes for ArcView Objects
124            as in '.apr'-files.
125    
126            * /Extensions/importAPR/odb.py: New: Classes for generic ArcView
127            ODB Objects as in '.apr', '.avl' and other files.
128    
129            * /Extensions/importAPR/__init__.py: New: Init to make this
130            directory a package.
131    
132            * /Extensions/importAPR/importAPR.py: New: Import a ArcView
133            project file (.apr) and convert it to Thuban.
134    
135    2003-09-22  Jan-Oliver Wagner <[email protected]>
136    
137            * Extensions/gns2shp.gns2shp.py: The main module of gns2shp.
138    
139    2003-09-19  Jan-Oliver Wagner <[email protected]>
140    
141            * Doc/manual/thuban-manual.xml: Extended section 'Installation'
142            with description on RPM installation and RPM binary package
143            creation.
144    
145    2003-09-18  Bernhard Herzog  <[email protected]>
146    
147            * setup.py (data_files): Only add the mo files if the Locales
148            directory actually exists, so that setup.py works with a fresh CVS
149            checkout
150    
151    2003-09-12  Jan-Oliver Wagner <[email protected]>
152    
153            * Examples/simple_extensions/simple_tool.py: bugfix: Tool is now
154            in viewport, not anymore in view
155    
156    2003-09-04  Jan-Oliver Wagner <[email protected]>
157    
158            Introducing first Extension (gns2shp).
159    
160            * Extensions, Extensions/gns2shp, Extensions/gns2shp/test: New.
161    
162            * Extensions/__init__.py: New. init to make this dir a package.
163    
164            * Extensions/gns2shp/__init__.py: New. init to make this dir a package.
165    
166            * Extensions/gns2shp/test/README: New. some info on this test directory.
167    
168            * Extensions/gns2shp/test/ls.txt: New. test data set (Liechtenstein).
169    
170            * Extensions/gns2shp/test/test_gns2shp.py: New. Test for correct creation
171            of Shapefile from GNS text file format
172    
173    2003-09-03  Jan-Oliver Wagner <[email protected]>
174    
175            Fix/workaround for bug #2019:
176            https://intevation.de/rt/webrt?serial_num=2019
177    
178            * Thuban/UI/identifyview.py (IdentifyView.ID_STOP): New.
179            (IdentifyView.__init__): Added another button that allows to
180            stop the identify mode.
181            (IdentifyView.OnStop): New. Stops the identify mode.
182    
183    2003-09-03  Jan-Oliver Wagner <[email protected]>
184    
185            Introducing a new exception dialog that allows to exit the
186            application immediately.
187            This fixes bug #2060: https://intevation.de/rt/webrt?serial_num=2060
188    
189            * Thuban/UI/exceptiondialog.py: New. A special exception dialog.
190    
191            * Thuban/UI/application.py (ThubanApplication.ShowExceptionDialog):
192            Made strings available to translations. Exchanged the simple
193            ScrolledMessageDialog by the new ExceptionDialog.
194    
195    2003-09-01  Bernhard Herzog  <[email protected]>
196    
197            * NEWS: New. Summary of changes and release notes.
198    
199            * MANIFEST.in: Add NEWS
200    
201    2003-09-01  Bernhard Herzog  <[email protected]>
202    
203            * MANIFEST.in: Correct the include statement for the mo-files and
204            include the documentation too.
205    
206            * setup.py (data_files): Add the .mo files
207            (setup call): Up to version 0.9.0
208    
209    2003-09-01  Bernhard Herzog  <[email protected]>
210    
211            * Thuban/UI/dbdialog.py (ChooseDBTableDialog.__init__): Change the
212            parameter list to just parent and session
213            (ChooseDBTableDialog.__set_properties): Removed. Setting the
214            selection of empty list boxes is not allowed (and produces C++
215            assertion errors) and the rest of the setup is better done in
216            __init__ anyway.
217            (ChooseDBTableDialog.OnCancel, ChooseDBTableDialog.OnOK)
218            (ChooseDBTableDialog.OnLBDClick, DBDialog.OnOK): Use the Python
219            builtins True/False for booleans to avoid warnings from wxPython
220    
221            * Thuban/UI/mainwindow.py (MainWindow.AddDBLayer): Adapt to new
222            ChooseDBTableDialog constructor parameters.
223    
224    2003-09-01  Bernhard Herzog  <[email protected]>
225    
226            * Thuban/Model/postgisdb.py
227            (PostGISTable): Extend doc-string
228            (PostGISTable._fetch_table_information): Set the column index
229            correctly, pretending ignored columns don't exist.
230    
231            * test/test_postgis_db.py (TestPostGISIgnoredColumns): New tests
232            for postgis tables with data types not yet supported by thuban.
233    
234    2003-08-29  Bernhard Herzog  <[email protected]>
235    
236            * HOWTO-Release: Tweak item about running the tests.
237    
238    2003-08-29  Jan-Oliver Wagner <[email protected]>
239    
240            * /Doc/manual/thuban-manual.xml: updated to version 1.0pre2.
241    
242    2003-08-29  Bernhard Herzog  <[email protected]>
243    
244            Add some missing parameters to projections. Proj complains about
245            them on windows but for some reason not on Linux.
246    
247            * test/test_save.py (SaveSessionTest.testLayerProjection): Add
248            missing required projection parameters
249    
250            * test/test_proj.py (TestProjFile.test): Add missing required
251            projection parameters
252    
253            * test/test_load_0_8.py (TestLayerProjection.file_contents)
254            (TestLayerProjection.test): Add missing required projection
255            parameters and tests for them
256    
257            * test/test_load.py (TestLayerProjection.file_contents)
258            (TestLayerProjection.test): Add missing required projection
259            parameters and tests for them
260    
261            * test/test_layer.py (TestLayer.test_base_layer): Add missing
262            required projection parameters
263    
264    2003-08-29  Bernhard Herzog  <[email protected]>
265    
266            * libraries/pyprojection/Projection.i: Use pj_get_errno_ref to
267            access the pj_errno because directly accessing pj_errno doesn't
268            work on windows if the proj library is in a DLL
269    
270            * libraries/pyprojection/Projection_wrap.c: Update from Projection.i
271    
272    2003-08-28  Bernhard Herzog  <[email protected]>
273    
274            * test/test_proj.py: Import things from Thuban after calling
275            initthuban
276    
277            * test/test_load.py (LoadSessionTest.filenames): New class
278            variable with the filename attributes to normalize
279            (LoadSessionTest.check_format): Pass self.filenames to
280            sax_eventlist to normalize the filename attributes
281    
282            * test/xmlsupport.py: Add cvs keywords
283            (SaxEventLister.__init__): New parameter filenames which indicates
284            attributes that contain filenames
285            (SaxEventLister.startElementNS): Normalize the filename attributes
286            with os.path.normpath
287            (sax_eventlist): New parameter filenames to pass through to
288            SaxEventLister
289    
290            * test/test_derivedshapestore.py: Make this file callable as a
291            program to execute the tests
292            (TestDerivedShapeStoreExceptions.test_table_with_wrong_size): Bind
293            the session to self.session so that it gets destroyed properly
294    
295            * test/test_layer.py (TestLayer.tearDown): Call the session's
296            Destroy method
297    
298            * test/test_map.py (TestMapBase.tearDown): Destroy self.session
299            too if it exists
300            (TestMapAddLayer.test_add_layer): Bind the session to self.session
301            so that it gets destroyed properly
302    
303            * test/postgissupport.py (reason_for_not_running_tests): Add a
304            test for the existence of popen2.Popen4.
305    
306            * test/test_save.py (SaveSessionTest.tearDown): New. Provide a
307            reliable way to destroy the sessions created in the test cases
308            (SaveSessionTest.test_dbf_table): Bind the session to self.session
309            so that it gets destroyed properly
310            (SaveSessionTest.testLayerProjection): Bind the session to
311            self.session so that it gets destroyed properly
312    
313            * test/test_session.py (UnreferencedTablesTests.tearDown): Make
314            sure that the session is destroyed properly
315    
316            * test/test_shapefilestore.py: Make this callable as a program to
317            execute the tests
318    
319            * test/test_scalebar.py: Remove unnecessary import of _ from
320            Thuban
321    
322            * test/support.py (print_garbage_information): Call initthuban
323            here because it may be called indirectly from test cases that test
324            test support modules which do not use anything from thuban itself
325            (ThubanTestProgram.runTests): Remove unnecessary debug print
326    
327    2003-08-28  Bernhard Herzog  <[email protected]>
328    
329            * Thuban/version.py (longversion): Update to 0.9
330    
331            * Thuban/UI/mainwindow.py: Remove some unused imports
332    
333            * README: Add section about required additional software. Add date
334            and revision CVS keywords
335    
336            * HOWTO-Release: Add item about the translations. Add date and
337            revision CVs keywords and change formatting to match README a bit
338            better
339    
340            * po/de.po: Update for 0.9
341    
342            * test/README: Tweak the wording a little because many tests are
343            not really unittest.
344    
345    2003-08-27  Bernhard Herzog  <[email protected]>
346    
347            As preparation for the 0.9 release, switch thuban files to a
348            non-dev namespace
349    
350            * Thuban/Model/save.py (SessionSaver.write_session): Write files
351            with the http://thuban.intevation.org/dtds/thuban-0.9.dtd
352            namespace
353    
354            * Thuban/Model/load.py (SessionLoader.__init__): Accept the
355            http://thuban.intevation.org/dtds/thuban-0.9.dtd namespace too
356    
357            * test/test_save.py (SaveSessionTest.dtd)
358            (SaveSessionTest.testEmptySession)
359            (SaveSessionTest.testSingleLayer)
360            (SaveSessionTest.testLayerProjection)
361            (SaveSessionTest.testRasterLayer)
362            (SaveSessionTest.testClassifiedLayer)
363            (SaveSessionTest.test_dbf_table)
364            (SaveSessionTest.test_joined_table)
365            (SaveSessionTest.test_save_postgis): Update for new namespace
366    
367            * test/test_load.py (LoadSessionTest.dtd, TestSingleLayer)
368            (TestLayerVisibility.file_contents, TestLabels.file_contents)
369            (TestLayerProjection.file_contents)
370            (TestRasterLayer.file_contents, TestJoinedTable.file_contents)
371            (TestPostGISLayer.file_contents)
372            (TestPostGISLayerPassword.file_contents)
373            (TestLoadError.file_contents, TestLoadError.test): Update for new
374            namespace
375    
376    2003-08-27  Bernhard Herzog  <[email protected]>
377    
378            Make the table interface distinguish between row ids (an integer
379            that uniquely identifies a row) and row ordinals (a simple row
380            count from 0 to NumRows() - 1)
381    
382            * Thuban/Model/postgisdb.py (PostGISTable.RowIdToOrdinal)
383            (PostGISTable.RowOrdinalToId): New methods to conver between row
384            ids and row ordinals
385            (PostGISTable.ReadRowAsDict, PostGISTable.ReadValue): New keyword
386            parameter row_is_ordinal to indicate whether the row parameter is
387            the row id or the ordinal
388    
389            * Thuban/Model/transientdb.py (TransientTableBase.RowIdToOrdinal)
390            (TransientTableBase.RowOrdinalToId)
391            (AutoTransientTable.RowIdToOrdinal)
392            (AutoTransientTable.RowOrdinalToId): Same new methods as in
393            PostGISTable.
394            (TransientTableBase.ReadRowAsDict, TransientTableBase.ReadValue)
395            (AutoTransientTable.ReadRowAsDict, AutoTransientTable.ReadValue):
396            Same new parameter as in PostGISTable.
397    
398            * Thuban/Model/table.py (DBFTable.RowIdToOrdinal)
399            (DBFTable.RowOrdinalToId, MemoryTable.RowIdToOrdinal)
400            (MemoryTable.RowOrdinalToId): Same new methods as in PostGISTable.
401            (DBFTable.ReadValue, DBFTable.ReadRowAsDict)
402            (MemoryTable.ReadValue, MemoryTable.ReadRowAsDict): Same new
403            parameter as in PostGISTable.
404    
405            * Thuban/UI/tableview.py (DataTable.RowIdToOrdinal)
406            (DataTable.RowOrdinalToId): New methods to convert between row ids
407            and row ordinals.
408            (TableGrid.SelectRowById): New method to select a row based on its
409            ID as opposed to its ordinal
410            (DataTable.GetValue, TableGrid.OnRangeSelect)
411            (TableGrid.OnSelectCell, LayerTableGrid.select_shapes)
412            (QueryTableFrame.OnQuery, QueryTableFrame.get_selected)
413            (LayerTableFrame.__init__): Convert between row ids and row
414            ordinals as appropriate
415    
416            * test/postgissupport.py (PostGISDatabase.__init__): Add
417            doc-string.
418            (PostGISDatabase.initdb): The optional third item in a tuple in
419            tables is now a (key, value) list with additional arguments to
420            pass to upload_shapefile
421            (upload_shapefile): New parameter gid_offset to allow gids that
422            are not the same as the shapeids in the shapefile
423            (PostgreSQLServer.get_default_static_data_db): Use the new
424            gid_offset to make the gids in landmarks 1000 higher than the
425            shapeids in the shapefile
426    
427            * test/test_viewport.py
428            (TestViewportWithPostGIS.test_find_shape_at_point): Adapt to the
429            new shapeids in the landmarks table
430    
431            * test/test_transientdb.py
432            (TestTransientTable.run_iceland_political_tests)
433            (TestTransientTable.test_transient_joined_table): Add tests for
434            the new table methods and new keywords arguments.
435    
436            * test/test_postgis_db.py
437            (TestPostGISTable.test_read_row_as_dict_row_count_mode)
438            (TestPostGISTable.test_read_value_row_count_mode)
439            (TestPostGISTable.test_row_id_to_ordinal)
440            (TestPostGISTable.test_row_oridnal_to_id): New test for the new
441            table methods and the new arguments
442            (TestPostGISShapestorePoint.test_shapes_in_region)
443            (TestPostGISShapestorePoint.test_shape_raw_data)
444            (TestPostGISShapestorePoint.test_shape_points)
445            (TestPostGISShapestorePoint.test_shape_shapeid)
446            (TestPostGISShapestorePoint.test_all_shapes)
447            (TestPostGISTable.test_simple_query)
448            (TestPostGISTable.test_simple_query)
449            (TestPostGISTable.test_simple_query)
450            (TestPostGISTable.test_read_value)
451            (TestPostGISTable.test_read_row_as_dict): Adapt to the new
452            shapeids in the landmarks table
453    
454            * test/test_memory_table.py
455            (TestMemoryTable.test_read_row_as_dict_row_count_mode)
456            (TestMemoryTable.test_read_value_row_count_mode)
457            (TestMemoryTable.test_row_id_to_ordinal)
458            (TestMemoryTable.test_row_oridnal_to_id): New test for the new
459            table methods and the new arguments
460    
461            * test/test_dbf_table.py
462            (TestDBFTable.test_read_row_as_dict_row_count_mode)
463            (TestDBFTable.test_read_value_row_count_mode)
464            (TestDBFTable.test_row_id_to_ordinal)
465            (TestDBFTable.test_row_oridnal_to_id): New test for the new table
466            methods and the new arguments
467    
468    2003-08-26  Bernhard Herzog  <[email protected]>
469    
470            * Thuban/Model/postgisdb.py (PostGISShapeStore.BoundingBox): Use a
471            more postgis specific but much faster method to get the bounding
472            box
473    
474    2003-08-26  Bernhard Herzog  <[email protected]>
475    
476            * Thuban/Model/postgisdb.py (PostGISTable.Title)
477            (PostGISShapeStore.AllShapes): Add these missing methods.
478            (PostGISShapeStore.ShapesInRegion): No need to raise
479            StopIteration. We can simply return
480    
481            * test/test_postgis_db.py (TestPostGISTable.test_title)
482            (TestPostGISShapestorePoint.test_all_shapes): New tests for the
483            new methods
484    
485    2003-08-25  Bernhard Herzog  <[email protected]>
486    
487            * Thuban/Model/postgisdb.py (shapetype_map): Add MUTLIPOLYGON.
488    
489            * test/test_postgis_db.py (PolygonTests): New class containing
490            those tests from TestPostGISShapestorePolygon that can also be
491            used to test MUTLIPOLYGON tables
492            (TestPostGISShapestorePolygon): Most tests are now in PolygonTests
493            so derive from that
494            (TestPostGISShapestoreMultiPolygon): New class with tests for
495            MUTLIPOLYGON tables
496    
497            * test/postgissupport.py (PostGISDatabase.initdb): Allow the
498            tables argument to have tuples with three items to override the
499            WKT type used.
500            (PostgreSQLServer.get_default_static_data_db): Use the above to
501            create a polygon table with MUTLIPOLYGONs
502            (point_to_wkt, coords_to_point, polygon_to_wkt, coords_to_polygon)
503            (arc_to_wkt, coords_to_multilinestring): Rename from *_to_wkt to
504            coords_to*
505            (coords_to_multipolygon): New. Convert to MUTLIPOLYGON
506            (wkt_converter): New. Map WKT types to converters
507            (upload_shapefile): New parameter force_wkt_type to use a
508            different WKT type than the default
509    
510    2003-08-25  Bernhard Herzog  <[email protected]>
511    
512            * Thuban/UI/application.py
513            (ThubanApplication.run_db_param_dialog): New. Suitable as a
514            db_connection_callback. Main difference is that the dialog run
515            from this method doesn't have a parent so it can be used even when
516            there is no main window
517            (ThubanApplication.OpenSession): Use self.run_db_param_dialog if
518            no db_connection_callback was given. This way the dialog pops up
519            even when the .thuban file was given as a command line parameter.
520    
521    2003-08-25  Bernhard Herzog  <[email protected]>
522    
523            * Thuban/UI/view.py (MapCanvas.OnLeftUp): Release the the mouse
524            before calling MouseLeftUp. MouseLeftUp may pop up modal dialogs
525            which leads to an effectively frozen X session because the user
526            can only interact with the dialog but the mouse is still grabbed
527            by the canvas.
528            Also, call the tool's Hide method before MouseLeftUp because
529            MouseLeftUp may change the tool's coordinates.
530    
531    2003-08-25  Bernhard Herzog  <[email protected]>
532    
533            * Thuban/UI/application.py (ThubanApplication.OpenSession): Catch
534            LoadCancelled exceptions and handle them by returning immediately.
535    
536    2003-08-25  Bernhard Herzog  <[email protected]>
537    
538            GUI part of loading sessions with postgis connections which may
539            require user interaction to get passwords or updated parameters
540    
541            * Thuban/UI/dbdialog.py (DBDialog): Reimplement to make it look a
542            bit nucer and be more generic.
543            (DBFrame.OnAdd): Adapt to new DBDialog interface
544    
545            * Thuban/UI/application.py (ThubanApplication.OpenSession): New
546            optional parameter db_connection_callback which is passed to
547            load_session.
548    
549            * Thuban/UI/mainwindow.py (MainWindow.run_db_param_dialog): New.
550            Suitable as a db_connection_callback
551            (MainWindow.OpenSession): Use self.run_db_param_dialog as the
552            db_connection_callback of the application's OpenSession method
553    
554    
555    2003-08-25  Bernhard Herzog  <[email protected]>
556    
557            Basic loading of sessions containing postgis connections:
558    
559            * Thuban/Model/load.py (LoadError): Add doc-string
560            (LoadCancelled): New exception class to indicate a cancelled load
561            (SessionLoader.__init__): Add the db_connection_callback parameter
562            which will be used by the loader to get updated parameters and a
563            password for a database connection
564            (SessionLoader.__init__): Add the new XML elements to the
565            dispatchers dictionary
566            (SessionLoader.check_attrs): Two new conversions, ascii to convert
567            to a byte-string object and idref as a generic id reference
568            (SessionLoader.start_dbconnection)
569            (SessionLoader.start_dbshapesource): New. Handlers for the new XML
570            elements
571            (load_session): Add the db_connection_callback to pass through the
572            SessionLoader
573    
574            * test/test_load.py (TestPostGISLayer, TestPostGISLayerPassword):
575            New classes to test loading of sessions with postgis database
576            connections.
577    
578    2003-08-25  Bernhard Herzog  <[email protected]>
579    
580            * Thuban/UI/mainwindow.py (__ThubanVersion__): Remove this and
581            replace it and the comment with __BuildDate__ by the Source: and
582            Id: cvs keywords as used in the other files.
583    
584    2003-08-25  Bernhard Herzog  <[email protected]>
585    
586            * Thuban/Model/load.py (SessionLoader.check_attrs): Raise a
587            LoadError when a required attribute is missing. The code used to
588            be commented out for some reason, but probably should have been
589            active.
590    
591            * test/test_load.py (TestLoadError.test): Test the message in the
592            LoadError too to make sure it really is about the missing
593            attribute
594    
595    2003-08-22  Bernhard Herzog  <[email protected]>
596    
597            * test/test_save.py (SaveSessionTest.test_dbf_table)
598            (SaveSessionTest.test_joined_table): Add XML validation tests.
599    
600    2003-08-22  Bernhard Herzog  <[email protected]>
601    
602            Implement saving a session with a postgis connection
603    
604            * Resources/XML/thuban-0.9.dtd (dbconnection, dbshapesource) New
605            elements for database connections and shapestores using db
606            connections
607            (session): Add the dbconnections to the content model
608    
609            * Thuban/Model/save.py (SessionSaver.write_db_connections): New.
610            Write the db connections
611            (SessionSaver.write_session): Call write_db_connections to write
612            the connection before the data sources
613            (SessionSaver.write_data_containers): Handle postgis shapestores
614    
615            * test/test_save.py (SaveSessionTest.thubanids)
616            (SaveSessionTest.thubanidrefs): Update for new DTD
617            (SaveSessionTest.test_save_postgis): New. Test saving a session
618            with postgis connections
619    
620            * Thuban/Model/postgisdb.py (PostGISTable.DBConnection)
621            (PostGISTable.TableName): New accessor methods for the connection
622            and table name
623    
624            * test/test_postgis_db.py (TestPostGISTable.test_dbconn)
625            (TestPostGISTable.test_dbname): New methods to test the new
626            PostGISConnection methods
627    
628    2003-08-22  Bernhard Herzog  <[email protected]>
629    
630            * Thuban/Model/postgisdb.py (ConnectionError): New exception class
631            for exceptions occurring when establishing a Database connection
632            (PostGISConnection.connect): Catch psycopg.OperationalError during
633            connects and raise ConnectionError.
634    
635            * test/test_postgis_db.py (TestPostgisDBExceptions): New class for
636            tests for database exceptions
637    
638    2003-08-22  Bernhard Herzog  <[email protected]>
639    
640            Prepare the test suite for tests with required authentication
641    
642            * test/postgissupport.py (PostgreSQLServer.__init__): Add instance
643            variables with two predefined users/passwords, one for the admin
644            and one for a non-privileged user.
645            (PostgreSQLServer.createdb): Pass the admin name to initdb and add
646            the non-privileged user to the database and set the admin password
647            (PostgreSQLServer.wait_for_postmaster): Use the admin user name.
648            Better error reporting
649            (PostgreSQLServer.connection_params)
650            (PostgreSQLServer.connection_string): New methods to return
651            information about how to connect to the server
652            (PostgreSQLServer.execute_sql): New. Convenience method to execute
653            SQL statements
654            (PostgreSQLServer.require_authentication): Toggle whether the
655            server requires authentication
656            (PostgreSQLServer.create_user, PostgreSQLServer.alter_user): New.
657            Add or alter users
658            (PostGISDatabase.initdb): Pass the admin name one the
659            subprocesses' command lines. Grant select rights on
660            geometry_columns to everybody.
661            (upload_shapefile): Use the admin name and password when
662            connecting. Grant select rights on the new table to everybody.
663    
664            * test/test_viewport.py (TestViewportWithPostGIS.setUp): Use the
665            server's new methods to get the connection parameters.
666    
667            * test/test_postgis_session.py (TestSessionWithPostGIS.setUp)
668            (TestSessionWithPostGIS.test_remove_dbconn_exception): Use the
669            server's new methods to get the connection parameters.
670    
671            * test/test_postgis_db.py
672            (TestPostGISConnection.test_gis_tables_empty)
673            (TestPostGISConnection.test_gis_tables_non_empty)
674            (PostGISStaticTests.setUp): Use the server's new methods to get
675            the connection parameters.
676    
677    2003-08-22  Bernhard Herzog  <[email protected]>
678    
679            * Thuban/UI/about.py (About.__init__): Add the psycopg version.
680    
681            * Thuban/version.py: Add psycopg version
682    
683            * Thuban/Model/postgisdb.py (psycopg_version): New. Return the
684            version of the psycopg module
685    
686    2003-08-22  Bernhard Herzog  <[email protected]>
687    
688            * Thuban/UI/dbdialog.py (DBPwdDlg): Removed because it's not used.
689            (DBFrame.OnEdit): Removed because it's not used and wouldn't work
690            at the moment. The functionality should probably be implemented
691            some time, though.
692            (DBFrame.OnRemove): Display a message if the connection can't be
693            removed because it's still in use.
694    
695    2003-08-22  Jan-Oliver Wagner <[email protected]>
696    
697            * Thuban/UI/about.py (About.__init__): split up the huge about
698            text into elements/lists for easier translation. This fixes bug
699            https://intevation.de/rt/webrt?serial_num=2058
700            Also, made some forgotten string available for the i18n.
701    
702    2003-08-21  Bernhard Herzog  <[email protected]>
703    
704            Make postgis support really optional including insensitive menu
705            items.
706    
707            * Thuban/Model/postgisdb.py (has_postgis_support): New. Return
708            whether the postgis is supported.
709    
710            * Thuban/UI/dbdialog.py: Put the psycopg import into try..except
711            to make postgis support optional
712    
713            * Thuban/UI/mainwindow.py (_has_postgis_support): New. Context
714            version of Thuban.Model.postgisdb.has_postgis_support
715            (database_management command): Make it only sensitive if postgis
716            is supported.
717    
718    2003-08-21  Jan-Oliver Wagner <[email protected]>
719    
720            * Doc/manual/thuban-manual.xml: Added CVS revision for rev-history.
721            (section Adding and Removing Layers): Added text and described
722            multi-selection.
723            (chapter Extensions): New.
724    
725    2003-08-21  Jan-Oliver Wagner <[email protected]>
726    
727            * Thuban/UI/mainwindow.py (MainWindow.AddLayer): Changed dialog
728            settings to allow multiple files to load into the map.
729            Also reduced selection to *.shp as a default.
730    
731    2003-08-20  Bernhard Herzog  <[email protected]>
732    
733            Add dialogs and commands to open database connections and add
734            database layers.
735    
736            * Thuban/UI/mainwindow.py (MainWindow.DatabaseManagement): New
737            method to open the database connection management dialog
738            (MainWindow.AddDBLayer): New method to add a layer from a database
739            (_has_dbconnections): New helper function to use for sensitivity
740            (database_management command, layer_add_db command): New commands
741            that call the above new methods.
742            (main_menu): Add the new commands to the menu.
743    
744            * Thuban/Model/postgisdb.py (PostGISConnection.__init__)
745            (PostGISConnection.connect): Establish the actual connection in a
746            separate method and call it in __init__. This makes it easier to
747            override the behavior in test cases
748            (PostGISConnection.BriefDescription): New method to return a brief
749            description for use in dialogs.
750    
751            * test/test_postgis_db.py (NonConnection): DB connection that
752            doesn't actually connect
753            (TestBriefDescription): New class with tests for the new
754            BriefDescription method
755    
756    2003-08-19  Jan-Oliver Wagner <[email protected]>
757    
758            Moved anything from extensions to libraries.
759    
760            * libraries: New.
761    
762            * libraries/ pyprojection, pyshapelib, shapelib, thuban: New.
763    
764            * libraries/pyprojection/ LICENSE, MANIFEST.in, Projection.i,
765            Projection.py, Projection_wrap.c, setup.py, swighelp.txt: These files have
766            been moved here from thuban/extensions/pyprojection/
767            See there in the Attic for the older history.
768    
769            * libraries/pyshapelib/ COPYING, ChangeLog, NEWS, README, dbflib.i,
770            dbflib.py, dbflib_wrap.c, pyshapelib_api.h, pytest.py, setup.py,
771            shapelib.i, shapelib.py, shapelib_wrap.c, shptreemodule.c: These files
772            have been moved here from thuban/extensions/pyshapelib/
773            See there in the Attic for the older history.
774    
775            * libraries/shapelib/ dbfopen.c, shapefil.h, shpopen.c, shptree.c: These
776            files have been moved here from thuban/extensions/shapelib/
777            See there in the Attic for the older history.
778    
779            * libraries/thuban/ bmpdataset.cpp, cpl_mfile.cpp, cpl_mfile.h,
780            gdalwarp.cpp, wxproj.cpp: These files have been moved here from
781            thuban/extensions/thuban/
782            See there in the Attic for the older history.
783    
784            * MANIFEST.in, setup.cfg, setup.py: renamed extensions to libraries.
785    
786            * extensions/thuban/ bmpdataset.cpp, cpl_mfile.cpp, cpl_mfile.h,
787            gdalwarp.cpp, wxproj.cpp: Moved to libraries/thuban.
788    
789            * extensions/shapelib/ dbfopen.c, shapefil.h, shpopen.c, shptree.c:
790            Moved to libraries/shapelib.
791    
792            * extensions/pyshapelib/ COPYING, NEWS, dbflib.py, pytest.py,
793            shapelib.py, README, dbflib_wrap.c, setup.py, shapelib_wrap.c,
794            ChangeLog, dbflib.i, pyshapelib_api.h, shapelib.i, shptreemodule.c:
795            Moved to libraries/pyshapelib.
796    
797            * extensions/pyprojection/ MANIFEST.in, Projection.py, setup.py,
798            LICENSE, Projection.i, Projection_wrap.c, swighelp.txt:
799            Moved to libraries/pyprojection.
800    
801            * extensions/ pyprojection, pyshapelib, shapelib, thuban: Removed.
802    
803            * extensions: Removed.
804    
805    2003-08-19  Bernhard Herzog  <[email protected]>
806    
807            * test/test_viewport.py (ViewPortTest): We don't use the
808            facilities of FileTestMixin so don't derive from it.
809            (TestViewportWithPostGIS): New class with tests for using a
810            viewport on a map with postgis layers.
811    
812    2003-08-19  Bernhard Herzog  <[email protected]>
813    
814            Add the db connection management to the session.
815    
816            * Thuban/Model/session.py (Session.__init__): New instance
817            variable db_connections
818            (Session.AddDBConnection, Session.DBConnections)
819            (Session.HasDBConnections, Session.CanRemoveDBConnection)
820            (Session.RemoveDBConnection): New methods to manage and query the
821            db connections managed by the session
822            (Session.OpenDBShapeStore): New method to open a shapestore from a
823            db connection
824    
825            * Thuban/Model/messages.py (DBCONN_REMOVED, DBCONN_ADDED): New
826            messages for the db connection handling in the session
827    
828            * test/test_postgis_session.py: New. test cases for the session's
829            db connection handling with postgis connections
830    
831    2003-08-19  Bernhard Herzog  <[email protected]>
832    
833            Add very basic postgis database support and the corresponding test
834            cases. The test cases require a PostgreSQL + postgis installation
835            but no existing database. The database will be created
836            automatically by the test cases
837    
838            * test/README: Add note about skipped tests and the requirements
839            of the postgis tests.
840    
841            * Thuban/Model/postgisdb.py: New. Basic postgis database support.
842    
843            * test/test_postgis_db.py: New. Test cases for the postgis
844            support.
845    
846            * Thuban/Model/wellknowntext.py: New. Parser for well-known-text
847            format
848    
849            * test/test_wellknowntext.py: New. Test cases for the
850            wellknowntext parser
851    
852            * test/postgissupport.py: New. Support module for tests involving
853            a postgis database.
854    
855            * test/support.py (execute_as_testsuite): Shut down the postmaster
856            if it's still running after the tests
857    
858            * Thuban/Model/data.py (RAW_WKT): New constant for raw data in
859            well known text format
860    
861    2003-08-19  Jan-Oliver Wagner <[email protected]>
862    
863            * Examples/simple_extensions/hello_world.py: New. Raises a Hello World
864            message dialog.
865    
866    2003-08-18  Bernhard Herzog  <[email protected]>
867    
868            * test/support.py (ThubanTestResult.printErrors): Indent the
869            reason for the skips in the output to make it a bit more readable.
870            (execute_as_testsuite): New helper function to run a test suite
871            and print some more information.
872            (run_tests): Use execute_as_testsuite to run the tests
873    
874            * test/runtests.py (main): Use execute_as_testsuite to run the
875            tests
876    
877    2003-08-18  Bernhard Herzog  <[email protected]>
878    
879            Fix some bugs in Thuban and the test suite that were uncovered by
880            changes introduced in Python 2.3:
881    
882            * Thuban/Model/table.py (DBFTable.__init__): Make sure the
883            filename is an absolute name
884    
885            * Thuban/Model/layer.py (RasterLayer.__init__): Make sure the
886            filename is an absolute name
887    
888            * test/test_save.py (SaveSessionTest.testRasterLayer): Use a
889            unique filename to save to and use the correct relative filename
890            in the expected output.
891            (SaveSessionTest.test_dbf_table): Use the correct relative
892            filename in the expected output.
893    
894            * test/test_layer.py (TestLayer.test_raster_layer): Update the
895            test to check whether the filename is absolute.
896    
897    2003-08-18  Jan-Oliver Wagner <[email protected]>
898    
899            * Thuban/UI/about.py (About.__init__): Added Silke Reimer.
900    
901    2003-08-15  Bernhard Herzog  <[email protected]>
902    
903            Change the way shapes are returned by a shape store. The
904            ShapesInRegion method returns an iterator over actual shape
905            objects instead of a list of shape ids.
906    
907            * Thuban/Model/data.py (ShapefileShape.ShapeID): New. Return shape
908            id.
909            (ShapefileStore.ShapesInRegion): Return an iterator over the
910            shapes which yields shape objects instead of returning a list of
911            shape ids
912            (ShapefileStore.AllShapes): New. Return an iterator over all
913            shapes in the shape store
914            (DerivedShapeStore.AllShapes): New. Like in ShapefileStore
915    
916            * Thuban/Model/layer.py (Layer.ShapesInRegion): Update
917            doc-string.
918    
919            * Thuban/UI/baserenderer.py
920            (BaseRenderer.layer_ids, BaseRenderer.layer_shapes): Rename to
921            layer_shapes and make it return an iterator containg shapes
922            instead of a list of ids.
923            (BaseRenderer.draw_shape_layer): Update doc-string; Adapt to
924            layer_shapes() change
925    
926            * Thuban/UI/renderer.py (ScreenRenderer.layer_ids)
927            (ScreenRenderer.layer_shapes): Rename as in BaseRenderer
928    
929            * Thuban/UI/viewport.py (ViewPort._find_shape_in_layer): Adapt to
930            changes in the ShapesInRegion return value.
931            (ViewPort._get_hit_tester): Remove commented out code
932    
933            * test/mockgeo.py (SimpleShapeStore.ShapesInRegion): Adapt to the
934            new return value.
935            (SimpleShapeStore.AllShapes): New. Implement this method too.
936    
937            * test/test_layer.py (TestLayer.test_arc_layer)
938            (TestLayer.test_polygon_layer, TestLayer.test_point_layer)
939            (TestLayer.test_point_layer_with_projection)
940            (TestLayer.test_derived_store): Adapt to changes in the
941            ShapesInRegion return value.
942    
943            * test/test_shapefilestore.py
944            (TestShapefileStoreArc.test_shapes_in_region)
945            (TestShapefileStorePolygon.test_shapes_in_region)
946            (TestShapefileStorePoint.test_shapes_in_region): Adapt to changes
947            in the ShapesInRegion return value.
948            (TestShapefileStorePoint.test_all_shapes)
949            (TestShapefileStoreArc.test_shape_shapeid): New tests for the new
950            methods
951    
952            * test/test_derivedshapestore.py
953            (TestDerivedShapeStore.test_shapes_in_region): Adapt to changes in
954            the ShapesInRegion return value.
955            (TestDerivedShapeStore.test_all_shapes)
956            (TestDerivedShapeStore.test_shape_shapeid): New tests for the new
957            methods
958    
959    2003-08-15  Bernhard Herzog  <[email protected]>
960    
961            Make the renderers deal correctly with raw vs. python level
962            representation of shape geometries
963    
964            * Thuban/UI/baserenderer.py (BaseRenderer.low_level_renderer):
965            Return a flag useraw in addition to the callable and the parameter
966            to indicate whether the callable can deal with the raw shape data
967            or uses the higher level python lists of coordinates. The callable
968            now should accept either the raw data or the return value of the
969            shape's Points() method.
970            (BaseRenderer.draw_shape_layer): Adapt to the low_level_renderer
971            change
972            (BaseRenderer.projected_points): Instead of the shape id use the
973            points list as parameter.
974            (BaseRenderer.draw_polygon_shape, BaseRenderer.draw_arc_shape)
975            (BaseRenderer.draw_point_shape): Adapt to projected_points()
976            change and accept the points list as parameter instead of the
977            shape id.
978    
979            * Thuban/UI/renderer.py (MapRenderer.low_level_renderer): Return
980            the useraw flag as required by the BaseRenderer
981            (ScreenRenderer.draw_shape_layer): Adapt to low-level renderer
982            changes.
983    
984            * test/test_baserenderer.py
985            (TestBaseRenderer.test_point_with_classification): New test for
986            rendering a map with classifications.
987    
988    2003-08-15  Bernhard Herzog  <[email protected]>
989    
990            * Thuban/UI/viewport.py (ViewPort.find_shape_at)
991            (ViewPort._find_shape_in_layer, ViewPort._find_shape_in_layer)
992            (ViewPort._get_hit_tester, ViewPort.projected_points)
993            (ViewPort._hit_point, ViewPort._hit_arc, ViewPort._hit_polygon)
994            (ViewPort._find_label_at): Split the find_shape_at method into
995            several new methods and use the functions in the hit-test module.
996    
997            * Thuban/UI/hittest.py: New module with Python-level hit-testing
998            functions
999    
1000            * test/test_hittest.py: New. Test for the new hittest module
1001    
1002    2003-08-15  Bernhard Herzog  <[email protected]>
1003    
1004            * Thuban/Model/layer.py (Layer.ShapesInRegion): Apply the layer
1005            projection to all corners of the bounding box to get a better
1006            approximation of the projected bounding box
1007    
1008            * test/test_layer.py (TestLayer.test_point_layer_with_projection):
1009            New. Test coordinate handling of a layer with a projection.
1010            Catches the bug fixed in Layer.ShapesInRegion
1011    
1012    2003-08-15  Bernhard Herzog  <[email protected]>
1013    
1014            Move some of the mock objects in test_baserenderer into their own
1015            module so they can easily be used from other tests
1016    
1017            * test/mockgeo.py: New test helper module with some mock objects
1018            for geometry related things like shapes, shapestores and
1019            projections.
1020    
1021            * test/test_mockgeo.py: New. Tests for the new helper module
1022    
1023            * test/test_baserenderer.py: Some of the mock-objects are in
1024            mockgeo now.
1025    
1026    2003-08-12  Jan-Oliver Wagner <[email protected]>
1027    
1028            * Thuban/UI/about.py (About.__init__): Added Bj�rn Broscheit.
1029    
1030    2003-08-12  Bernhard Herzog  <[email protected]>
1031    
1032            * po/de.po: New. German translations by Bjoern Broscheit
1033    
1034    2003-08-12  Bernhard Herzog  <[email protected]>
1035    
1036            * Thuban/UI/projdialog.py (UnknownProjPanel._DoLayout): Translated
1037            strings have to be one string literal.
1038    
1039    2003-08-11  Bernhard Herzog  <[email protected]>
1040    
1041            * test/support.py (FloatComparisonMixin.assertPointListEquals):
1042            New. This method was used in various derived classes, but it's
1043            better to have it here.
1044    
1045            * test/test_shapefilestore.py
1046            (ShapefileStoreTests.assertPointListEquals): Removed. It's now in
1047            FloatComparisonMixin
1048    
1049            * test/test_layer.py (TestLayer.assertPointListEquals): Removed.
1050            It's now in FloatComparisonMixin
1051    
1052            * test/test_derivedshapestore.py
1053            (TestDerivedShapeStore.assertPointListEquals): Removed. It's now
1054            in FloatComparisonMixin
1055    
1056    2003-08-11  Bernhard Herzog  <[email protected]>
1057    
1058            * Thuban/UI/join.py (JoinDialog.OnJoin): Add missing space to
1059            error message
1060    
1061    2003-08-08  Jan-Oliver Wagner <[email protected]>
1062    
1063            * Doc/manual/thuban-manual.xml: Now use authorgroup. Added revhistory
1064            with version number.
1065            Changed title to reflect version number of Thuban.
1066    
1067    2003-08-08  Jan-Oliver Wagner <[email protected]>
1068    
1069            * Thuban/UI/about.py (About.__init__): Reworked the hall of fame. Now
1070            the list corresponds to the "About" web page.
1071    
1072    2003-08-08  Bernhard Herzog  <[email protected]>
1073    
1074            * Thuban/UI/projdialog.py (UTMProposeZoneDialog.dialogLayout):
1075            Make sure translated strings are recognized as one string literal.
1076    
1077            * Thuban/UI/proj4dialog.py (UTMProposeZoneDialog.dialogLayout):
1078            Make sure translated strings are recognized as one string literal.
1079    
1080            * Thuban/UI/classgen.py (ClassGenDialog.OnOK): Make sure
1081            translated strings are recognized as one string literal.
1082    
1083            * Thuban/UI/application.py (ThubanApplication.OpenSession): Make
1084            sure translated strings are recognized as one string literal.
1085    
1086    2003-08-07  Bernhard Herzog  <[email protected]>
1087    
1088            * Thuban/Model/data.py (DerivedShapeStore.RawShapeFormat): New.
1089            Simply delegates to the original shapestore.
1090    
1091            * test/test_derivedshapestore.py
1092            (TestDerivedShapeStore.test_raw_format): New. Test case for
1093            DerivedShapeStore.RawShapeFormat
1094    
1095    2003-08-07  Bernhard Herzog  <[email protected]>
1096    
1097            Add raw data interface to shape objects.
1098    
1099            * Thuban/Model/data.py (ShapefileShape, Shape): Rname the shape
1100            class to ShapefileShape which now holds shapefile specific
1101            information.
1102            (ShapefileShape.compute_bbox): Simplified to not cache any
1103            information. The way this method is used that shouldn't matter
1104            performance wise.
1105            (ShapefileShape.RawData): New. Return the shapeid which is the raw
1106            data format for shapes from shapefiles.
1107            (ShapefileStore.RawShapeFormat): New. Return the raw datatype used
1108            in the shape objects returned by a shapestore. For a
1109            ShapefileStore this is always RAW_SHAPEFILE.
1110            (RAW_PYTHON, RAW_SHAPEFILE): Constants for the RawShapeFormat
1111            method.
1112    
1113            * test/test_shapefilestore.py
1114            (TestShapefileStore.test_raw_format): New test to test the raw
1115            format feature of shapes.
1116    
1117            * Thuban/Model/layer.py: Remove the unused import of Shape from
1118            data. It was only there for interface compatibility but it's not
1119            used inside of Thuban and the generic Shape class has gone away.
1120    
1121            * Thuban/UI/renderer.py (MapRenderer.low_level_renderer): Check
1122            the raw data format and only use an optimized version of its a
1123            shapefile.
1124    
1125    2003-08-07  Bernhard Herzog  <[email protected]>
1126    
1127            * test/test_baserenderer.py (SimpleShape): Shape class for the
1128            tests.
1129            (SimpleShapeStore.Shape): Use SimpleShape instead of
1130            Thuban.Model.data.Shape to make the tests independed of the coming
1131            changes.
1132    
1133    2003-08-07  Bernhard Herzog  <[email protected]>
1134    
1135            * test/support.py (SkipTest, ThubanTestResult, ThubanTestRunner)
1136            (ThubanTestProgram): New classes that extend the respective
1137            classes from unittest. These new version support skipping tests
1138            under certain expected conditions. In the Thuban test suite we
1139            uses this for tests that require the optional gdal support.
1140            (run_tests): Use ThubanTestProgram instead of the unittest.main()
1141    
1142            * test/runtests.py (main): Use the new ThubanTestRunner instead of
1143            the normal one from unittest
1144    
1145            * test/test_layer.py (TestLayer.test_raster_layer): If this test
1146            is not run because gdal support isn't available report this to the
1147            runner.
1148    
1149            * test/test_baserenderer.py
1150            (TestBaseRenderer.test_raster_no_projection): Do not run this test
1151            if gdal support isn't available and report this to the runner.
1152    
1153  2003-08-06  Bernhard Herzog  <[email protected]>  2003-08-06  Bernhard Herzog  <[email protected]>
1154    
1155          Rearrange the renderers a bit, partly in preparation for changes          Rearrange the renderers a bit, partly in preparation for changes
# Line 298  Line 1450 
1450    
1451          * Thuban/Model/range.py, Thuban/version.py: Remove the #! line as          * Thuban/Model/range.py, Thuban/version.py: Remove the #! line as
1452          it annoys lintian which warns about these files not being          it annoys lintian which warns about these files not being
1453          executable. The #1 isn't necessary here since if you absolutely          executable. The #! isn't necessary here since if you absolutely
1454          must execute them you can always say "python <filename>".          must execute them you can always say "python <filename>".
1455    
1456          * Thuban/UI/renderer.py (ScreenRenderer.draw_shape_layer): Remove          * Thuban/UI/renderer.py (ScreenRenderer.draw_shape_layer): Remove

Legend:
Removed from v.1553  
changed lines
  Added in v.1773

[email protected]
ViewVC Help
Powered by ViewVC 1.1.26