| | 331 | # Verify we can write and read large metadata items. |
|---|
| | 332 | |
|---|
| | 333 | def hfa_metadata_1(): |
|---|
| | 334 | |
|---|
| | 335 | drv = gdal.GetDriverByName('HFA') |
|---|
| | 336 | ds = drv.Create( 'tmp/md_1.img', 100, 150, 1, gdal.GDT_Byte ) |
|---|
| | 337 | |
|---|
| | 338 | md_val = '0123456789' * 60 |
|---|
| | 339 | md = { 'test' : md_val } |
|---|
| | 340 | ds.GetRasterBand(1).SetMetadata( md ) |
|---|
| | 341 | ds = None |
|---|
| | 342 | |
|---|
| | 343 | ds = gdal.Open( 'tmp/md_1.img' ) |
|---|
| | 344 | md = ds.GetRasterBand(1).GetMetadata() |
|---|
| | 345 | if md['test'] != md_val: |
|---|
| | 346 | print md['test'] |
|---|
| | 347 | print md_val |
|---|
| | 348 | gdaltest.post_reason( 'got wrong metadata back' ) |
|---|
| | 349 | return 'fail' |
|---|
| | 350 | ds = None |
|---|
| | 351 | |
|---|
| | 352 | return 'success' |
|---|
| | 353 | |
|---|
| | 354 | ############################################################################### |
|---|
| | 355 | # Verify that writing metadata multiple times does not result in duplicate |
|---|
| | 356 | # nodes. |
|---|
| | 357 | |
|---|
| | 358 | def hfa_metadata_2(): |
|---|
| | 359 | |
|---|
| | 360 | ds = gdal.Open( 'tmp/md_1.img', gdal.GA_Update ) |
|---|
| | 361 | md = ds.GetRasterBand(1).GetMetadata() |
|---|
| | 362 | md['test'] = '0123456789' |
|---|
| | 363 | md['xxx'] = '123' |
|---|
| | 364 | ds.GetRasterBand(1).SetMetadata( md ) |
|---|
| | 365 | ds = None |
|---|
| | 366 | |
|---|
| | 367 | ds = gdal.Open( 'tmp/md_1.img' ) |
|---|
| | 368 | md = ds.GetRasterBand(1).GetMetadata() |
|---|
| | 369 | if not md.has_key('xxx'): |
|---|
| | 370 | gdaltest.post_reason('metadata rewrite seems not to have worked') |
|---|
| | 371 | return 'fail' |
|---|
| | 372 | |
|---|
| | 373 | if md['xxx'] != '123' or md['test'] != '0123456789': |
|---|
| | 374 | print md |
|---|
| | 375 | gdaltest.post_reason('got wrong metadata back') |
|---|
| | 376 | return 'fail' |
|---|
| | 377 | |
|---|
| | 378 | gdal.GetDriverByName('HFA').Delete( 'tmp/md_1.img' ) |
|---|
| | 379 | |
|---|
| | 380 | return 'success' |
|---|
| | 381 | |
|---|
| | 382 | ############################################################################### |
|---|