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

gvm.protocols.gmpv208.entities.tickets   A

Complexity

Total Complexity 3

Size/Duplication

Total Lines 50
Duplicated Lines 0 %

Importance

Changes 0
Metric Value
eloc 19
dl 0
loc 50
rs 10
c 0
b 0
f 0
wmc 3

1 Function

Rating   Name   Duplication   Size   Complexity  
A get_ticket_status_from_string() 0 14 3
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