# Copyright 2014 Lars Wirzenius # # This program is free software: you can redistribute it and/or modify # it under the terms of the GNU General Public License as published by # the Free Software Foundation, either version 3 of the License, or # (at your option) any later version. # # This program is distributed in the hope that it will be useful, # but WITHOUT ANY WARRANTY; without even the implied warranty of # MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the # GNU General Public License for more details. # # You should have received a copy of the GNU General Public License # along with this program. If not, see . # # =*= License: GPL-3+ =*= import errno import unittest import distixlib class TicketLoaderTests(unittest.TestCase): def test_load_from_directory_raises_error_if_metadata_isnt_found(self): def raise_error(*args): raise distixlib.CannotLoadMetadataError( filename='whatever', errno=errno.ENOENT, strerror='not there') loader = distixlib.TicketLoader() loader._load_metadata = raise_error self.assertRaises( distixlib.CannotLoadTicketError, loader.load_from_directory, 'ticketid') def test_load_from_directory_loads_ticket_metadata(self): metadata = distixlib.Metadata() metadata.add('ticket-id', 'tid') metadata.add('title', 'cats and dogs') def load_metadata(*args): return metadata loader = distixlib.TicketLoader() loader._load_metadata = load_metadata loader._load_messages = lambda *args: [] ticket = loader.load_from_directory('ticket-id') self.assertEqual(ticket.get_ticket_id(), 'tid') self.assertEqual(ticket.get_title(), 'cats and dogs')