File: test_filter.py

package info (click to toggle)
python-jira 3.10.5-1
  • links: PTS, VCS
  • area: main
  • in suites: forky, sid
  • size: 1,024 kB
  • sloc: python: 8,877; sh: 13; makefile: 7; xml: 4
file content (72 lines) | stat: -rw-r--r-- 2,805 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
from __future__ import annotations

from contextlib import contextmanager

from tests.conftest import JiraTestCase, rndstr


class FilterTests(JiraTestCase):
    def setUp(self):
        JiraTestCase.setUp(self)
        self.issue_1 = self.test_manager.project_b_issue1
        self.issue_2 = self.test_manager.project_b_issue2

        self.filter_jql: str = f"project = {self.project_b} AND component is not EMPTY"
        self.filter_name: str = "some filter " + rndstr()
        self.filter_desc: str = "just some new test filter"
        self.filter_favourite: bool | None = False

    @contextmanager
    def make_filter(self, **kwargs):
        try:
            new_filter = self.jira.create_filter(
                name=kwargs.pop("name", self.filter_name),
                description=kwargs.pop("description", self.filter_desc),
                jql=kwargs.pop("jql", self.filter_jql),
                favourite=kwargs.pop("favourite", self.filter_favourite),
            )
            if len(kwargs):
                raise ValueError("Incorrect kwarg used !")
            yield new_filter
        finally:
            new_filter.delete()

    def test_filter(self):
        with self.make_filter() as myfilter:
            self.assertEqual(myfilter.name, self.filter_name)
            self.assertEqual(myfilter.owner.name, self.test_manager.user_admin.name)

    def test_favourite_filters(self):
        filter_name = f"filter-to-fav-{self.filter_name}"
        with self.make_filter(name=filter_name, favourite=True):
            new_filters = self.jira.favourite_filters()
            assert filter_name in [f.name for f in new_filters]

    def test_filter_update_empty_description(self):
        new_jql = f"{self.filter_jql} ORDER BY created ASC"
        new_name = f"new_{self.filter_name}"
        with self.make_filter(description=None) as myfilter:
            self.jira.update_filter(
                myfilter.id,
                name=new_name,
                description=None,
                jql=new_jql,
                favourite=None,
            )
            updated_filter = self.jira.filter(myfilter.id)
            assert updated_filter.name == new_name
            assert updated_filter.jql == new_jql
            assert not hasattr(updated_filter, "description")

    def test_filter_update_empty_description_with_new_description(self):
        new_desc = "new description"
        with self.make_filter(description=None) as myfilter:
            self.jira.update_filter(
                myfilter.id,
                name=myfilter.name,
                description=new_desc,
                jql=myfilter.jql,
                favourite=None,
            )
            updated_filter = self.jira.filter(myfilter.id)
            assert updated_filter.description == new_desc