@@ -58,6 +58,76 @@ def testLayerConstructorMapArg(self):
5858 assert layer .map is not None , layer .map
5959
6060
61+ class LayerItemDefinitionTestCase (MapLayerTestCase ):
62+
63+ def setUp (self ):
64+ MapTestCase .setUp (self )
65+ self .layer = self .map .getLayerByName ('POINT' )
66+ self .layer .open ()
67+
68+ def tearDown (self ):
69+ self .layer .close ()
70+
71+ def testLayerGetItemDefinition (self ):
72+ """test getting layer item information for the first item"""
73+
74+ gml_item = self .layer .getItemDefinition (0 )
75+ assert gml_item .name == "FID"
76+ assert gml_item .type == "Integer"
77+ assert gml_item .alias is None
78+ assert gml_item .encode == 1
79+ assert gml_item .minOccurs == 0
80+ assert gml_item .outputByDefault == 1
81+ assert gml_item .precision == 0
82+ assert gml_item .template is None
83+ assert gml_item .visible == 0
84+ assert gml_item .width == 10
85+
86+ def testLayerGetItemDefinition2 (self ):
87+ """test getting layer item information for the second item"""
88+
89+ gml_item = self .layer .getItemDefinition (1 )
90+ assert gml_item .name == "FNAME"
91+ assert gml_item .type == "Character"
92+ assert gml_item .alias is None
93+ assert gml_item .encode == 1
94+ assert gml_item .minOccurs == 0
95+ assert gml_item .outputByDefault == 1
96+ assert gml_item .precision == 0
97+ assert gml_item .template is None
98+ assert gml_item .visible == 0
99+ assert gml_item .width == 10
100+
101+ def testLayerGetMissingItemDefinition (self ):
102+ """test getting item information for a non-existent index"""
103+ gml_item = self .layer .getItemDefinition (100 )
104+ assert gml_item is None
105+
106+ def testLayerGetItemDefinitionClosedLayer (self ):
107+ """item definition will be None for a closed layer"""
108+ self .layer .close ()
109+ gml_item = self .layer .getItemDefinition (0 )
110+ assert gml_item is None
111+
112+ def testLayerGetNonDefinedItemDefinition (self ):
113+ """test getting layer item information for a layer with gml_types auto"""
114+
115+ layer = self .map .getLayerByName ('POLYGON' )
116+ layer .open ()
117+ gml_item = layer .getItemDefinition (0 )
118+ assert gml_item .name == "FID"
119+ assert gml_item .type is None
120+ assert gml_item .alias is None
121+ assert gml_item .encode == 1
122+ assert gml_item .minOccurs == 0
123+ assert gml_item .outputByDefault == 1
124+ assert gml_item .precision == 0
125+ assert gml_item .template is None
126+ assert gml_item .visible == 0
127+ assert gml_item .width == 0
128+ layer .close ()
129+
130+
61131class LayerCloningTestCase (MapLayerTestCase ):
62132
63133 def testLayerCloning (self ):
0 commit comments