# -*- coding: utf-8 -*- import unittest from util.dockerfileparse import parse_dockerfile class TestParsedDockerfile(unittest.TestCase): def test_basic_parse(self): parsed = parse_dockerfile(""" FROM someimage:latest RUN dosomething """) self.assertEquals(("someimage", "latest"), parsed.get_image_and_tag()) self.assertEquals("someimage", parsed.get_base_image()) def test_basic_parse_notag(self): parsed = parse_dockerfile(""" FROM someimage RUN dosomething """) self.assertEquals(("someimage", "latest"), parsed.get_image_and_tag()) self.assertEquals("someimage", parsed.get_base_image()) def test_two_from_lines(self): parsed = parse_dockerfile(""" FROM someimage:latest FROM secondimage:second """) self.assertEquals(("secondimage", "second"), parsed.get_image_and_tag()) self.assertEquals("secondimage", parsed.get_base_image()) def test_parse_comments(self): parsed = parse_dockerfile(""" # FROM someimage:latest FROM anotherimage:foobar # This is a comment RUN dosomething """) self.assertEquals(("anotherimage", "foobar"), parsed.get_image_and_tag()) self.assertEquals("anotherimage", parsed.get_base_image()) def test_unicode_parse_as_ascii(self): parsed = parse_dockerfile(""" FROM someimage:latest MAINTAINER José Schorr """) self.assertEquals(("someimage", "latest"), parsed.get_image_and_tag()) self.assertEquals("someimage", parsed.get_base_image()) def test_unicode_parse_as_unicode(self): parsed = parse_dockerfile(""" FROM someimage:latest MAINTAINER José Schorr """.decode('utf-8')) self.assertEquals(("someimage", "latest"), parsed.get_image_and_tag()) self.assertEquals("someimage", parsed.get_base_image()) if __name__ == '__main__': unittest.main()