File: test_utils.py

package info (click to toggle)
freedom-maker 0.35
  • links: PTS, VCS
  • area: main
  • in suites: forky, sid
  • size: 408 kB
  • sloc: python: 2,200; xml: 357; makefile: 10
file content (75 lines) | stat: -rw-r--r-- 2,720 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
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
# SPDX-License-Identifier: GPL-3.0-or-later
"""
Tests for miscellaneous utility methods.
"""

import pytest
from freedommaker import utils


def test_add_disk_offsets():
    """Test disk offset addition."""
    assert utils.add_disk_offsets('1MiB', '2MiB') == '3MiB'
    # mib is not allowed as unit. Only MiB.
    with pytest.raises(NotImplementedError):
        utils.add_disk_offsets('1mib', '1mib')

    with pytest.raises(NotImplementedError):
        utils.add_disk_offsets('1GiB', '1MiB')

    with pytest.raises(NotImplementedError):
        utils.add_disk_offsets('1MiB', '1GiB')

    with pytest.raises(ValueError):
        utils.add_disk_offsets('xMiB', '1MiB')

    with pytest.raises(ValueError):
        utils.add_disk_offsets('xMiB', 'xMiB')


def test_parse_disk_size():
    """Test parsing disk sizes."""
    assert utils.parse_disk_size(0) == 0
    assert utils.parse_disk_size(123) == 123
    assert utils.parse_disk_size('123') == 123
    assert utils.parse_disk_size('123b') == 123
    assert utils.parse_disk_size('123k') == 123 * 1024
    assert utils.parse_disk_size('123K') == 123 * 1024
    assert utils.parse_disk_size('123M') == 123 * 1024 * 1024
    assert utils.parse_disk_size('123G') == 123 * 1024 * 1024 * 1024
    assert utils.parse_disk_size('123T') == 123 * 1024 * 1024 * 1024 * 1024
    with pytest.raises(ValueError):
        utils.parse_disk_size('-1M')

    with pytest.raises(ValueError):
        utils.parse_disk_size('1B')

    with pytest.raises(ValueError):
        utils.parse_disk_size('1P')

    with pytest.raises(ValueError):
        utils.parse_disk_size('test')


def test_format_disk_size():
    """Test that formatting disk sizes works."""
    assert utils.format_disk_size(0) == '0'
    assert utils.format_disk_size(1) == '1'
    assert utils.format_disk_size(1023) == '1023'
    assert utils.format_disk_size(1024) == '1K'
    assert utils.format_disk_size(1023 * 1023) == '1046529'
    assert utils.format_disk_size(1023 * 1024) == '1023K'
    assert utils.format_disk_size(1024 * 1024) == '1M'
    assert utils.format_disk_size(1023 * 1024 * 1024) == '1023M'
    assert utils.format_disk_size(1024 * 1024 * 1024) == '1G'
    assert utils.format_disk_size(1023 * 1024 * 1024 * 1024) == '1023G'
    assert utils.format_disk_size(1024 * 1024 * 1024 * 1024) == '1T'
    assert utils.format_disk_size(1023 * 1024 * 1024 * 1024 * 1024) == '1023T'


def test_add_disk_sizes():
    """Test that adding two disk sizes works as expected."""
    assert utils.add_disk_sizes('1M', '1K') == '1025K'
    assert utils.add_disk_sizes('1G', '1K') == '1048577K'
    assert utils.add_disk_sizes('512M', '512M') == '1G'
    assert utils.add_disk_sizes('3800M', '1000M') == '4800M'