# Copyright 2015 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 os import shutil import tempfile import unittest import icklib class BuildInformationTests(unittest.TestCase): def setUp(self): self.tempdir = tempfile.mkdtemp() self.filename = os.path.join(self.tempdir, 'build.yaml') def tearDown(self): shutil.rmtree(self.tempdir) def test_creates_artifacts_directory(self): build_info = icklib.BuildInformation() build_info.set_filename(self.filename) artifacts_dir = build_info.create_artifacts_directory() self.assertEqual(os.path.dirname(artifacts_dir), self.tempdir) self.assertTrue(os.path.isdir(artifacts_dir)) def test_saves_then_loads(self): build_info = icklib.BuildInformation() build_info.set_filename(self.filename) build_info.build_number = 42 build_info.commits = [ { 'git': 'git://git.example.com/foo.git', 'commit': 'cafef00d', }, ] build_info.duration = 42 build_info.save() loaded = icklib.BuildInformation() loaded.set_filename(self.filename) loaded.load() self.assertEqual(build_info.build_number, loaded.build_number) self.assertEqual(build_info.commits, loaded.commits) self.assertEqual(build_info.duration, loaded.duration)