File: test_nb_data_bands.py

package info (click to toggle)
gdal 2.4.0%2Bdfsg-1
  • links: PTS, VCS
  • area: main
  • in suites: buster
  • size: 106,060 kB
  • sloc: cpp: 1,034,177; ansic: 177,878; python: 23,590; perl: 7,420; sh: 6,285; java: 5,382; xml: 3,100; cs: 2,343; yacc: 1,198; makefile: 518; sql: 112
file content (43 lines) | stat: -rw-r--r-- 1,355 bytes parent folder | download | duplicates (2)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
from unittest import mock, TestCase
from osgeo import gdal

import gdal2tiles


class NbDataBandsTest(TestCase):

    def setUp(self):
        self.ds = mock.MagicMock()
        alphaband = mock.MagicMock()
        alphaband.GetMaskFlags = mock.MagicMock(return_value=gdal.GMF_ALPHA - 1)
        rasterband = mock.MagicMock()
        rasterband.GetMaskBand = mock.MagicMock(return_value=alphaband)
        self.ds.GetRasterBand = mock.MagicMock(return_value=rasterband)

    def test_1_band_means_gray(self):
        self.ds.RasterCount = 1

        self.assertEqual(gdal2tiles.nb_data_bands(self.ds), 1)

    def test_2_bands_means_gray_alpha(self):
        self.ds.RasterCount = 2

        self.assertEqual(gdal2tiles.nb_data_bands(self.ds), 1)

    def test_3_bands_means_rgb(self):
        self.ds.RasterCount = 3

        self.assertEqual(gdal2tiles.nb_data_bands(self.ds), 3)

    def test_4_bands_means_rgba(self):
        self.ds.RasterCount = 4

        self.assertEqual(gdal2tiles.nb_data_bands(self.ds), 3)

    def test_alpha_mask(self):
        SOME_RANDOM_NUMBER = 42
        self.ds.RasterCount = SOME_RANDOM_NUMBER
        self.ds.GetRasterBand(1).GetMaskBand().GetMaskFlags.return_value = gdal.GMF_ALPHA

        # Should consider there is an alpha band
        self.assertEqual(gdal2tiles.nb_data_bands(self.ds), SOME_RANDOM_NUMBER - 1)