Completed
Push — master ( d15ae4...af96e1 )
by Björn
31s queued 22s
created

get_ticket_status_from_string()   A

Complexity

Conditions 3

Size

Total Lines 14
Code Lines 11

Duplication

Lines 0
Ratio 0 %

Importance

Changes 0
Metric Value
cc 3
eloc 11
nop 1
dl 0
loc 14
rs 9.85
c 0
b 0
f 0
1
# -*- coding: utf-8 -*-
2
# Copyright (C) 2021 Greenbone Networks GmbH
3
#
4
# SPDX-License-Identifier: GPL-3.0-or-later
5
#
6
# This program is free software: you can redistribute it and/or modify
7
# it under the terms of the GNU General Public License as published by
8
# the Free Software Foundation, either version 3 of the License, or
9
# (at your option) any later version.
10
#
11
# This program is distributed in the hope that it will be useful,
12
# but WITHOUT ANY WARRANTY; without even the implied warranty of
13
# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
14
# GNU General Public License for more details.
15
#
16
# You should have received a copy of the GNU General Public License
17
# along with this program.  If not, see <http://www.gnu.org/licenses/>.
18
19
# pylint:  disable=redefined-builtin
20
21
from enum import Enum
22
23
from typing import Optional
24
25
from gvm.errors import InvalidArgument
26
27
28
class TicketStatus(Enum):
29
    """Enum for ticket status"""
30
31
    OPEN = 'Open'
32
    FIXED = 'Fixed'
33
    CLOSED = 'Closed'
34
35
36
def get_ticket_status_from_string(
37
    ticket_status: Optional[str],
38
) -> Optional[TicketStatus]:
39
    """Convert a ticket status string into a TicketStatus instance"""
40
    if not ticket_status:
41
        return None
42
43
    try:
44
        return TicketStatus[ticket_status.upper()]
45
    except KeyError:
46
        raise InvalidArgument(
47
            argument='ticket_status',
48
            function=get_ticket_status_from_string.__name__,
49
        ) from None
50