File: test_generator.py

package info (click to toggle)
python-flask-seeder 1.2.0-6
  • links: PTS, VCS
  • area: main
  • in suites: forky, sid, trixie
  • size: 292 kB
  • sloc: python: 1,062; makefile: 2
file content (51 lines) | stat: -rw-r--r-- 1,476 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
from unittest import TestCase
from unittest.mock import MagicMock, patch, mock_open

from flask_seeder.generator import Generator, resource_path, read_resource, slicer

MOCK_CONTENTS = "line1\nline2"

class TestGenerator(TestCase):

    def setUp(self):
        self.rnd_mock = MagicMock()
        self.generator = Generator(rnd=self.rnd_mock)


    def test_generate_raise_NotImplementedError(self):
        with self.assertRaises(NotImplementedError):
            self.generator.generate()

    @patch("flask_seeder.generator.pkg_resources")
    def test_resource_path(self, m_pkg):
        resource_path("test")

        m_pkg.resource_filename.assert_called_once()

    @patch("flask_seeder.generator.resource_path", return_value="test")
    @patch("flask_seeder.generator.open", mock_open(read_data=MOCK_CONTENTS))
    def test_read_resource_return_contents_as_list(self, m_open):
        expected = [
            "line1",
            "line2"
        ]

        result = read_resource("test")

        self.assertListEqual(result, expected)

    def test_slicer_return_new_string(self):
        original = "abcdefghijklmnopqrstuvwxyz"
        expected = "ijklmno"

        result = slicer(original, "i", "o")

        self.assertEqual(result, expected)

    def test_slicer_return_None_if_no_slice_is_found(self):
        original = "abcdefghijklmnopqrstuvwxyz"

        # Inversed start/end
        result = slicer(original, "z", "a")

        self.assertIsNone(result)