diff --git a/test/data/submodulerepo.tar b/test/data/submodulerepo.tar new file mode 100644 index 0000000..9292bc6 Binary files /dev/null and b/test/data/submodulerepo.tar differ diff --git a/test/test_submodule.py b/test/test_submodule.py new file mode 100644 index 0000000..00ceb6a --- /dev/null +++ b/test/test_submodule.py @@ -0,0 +1,73 @@ +# -*- coding: UTF-8 -*- +# +# Copyright 2010-2015 The pygit2 contributors +# +# This file is free software; you can redistribute it and/or modify +# it under the terms of the GNU General Public License, version 2, +# as published by the Free Software Foundation. +# +# In addition to the permissions in the GNU General Public License, +# the authors give you unlimited permission to link the compiled +# version of this file into combinations with other programs, +# and to distribute those combinations without any restriction +# coming from the use of this file. (The General Public License +# restrictions do apply in other respects; for example, they cover +# modification of the file, and distribution when not linked into +# a combined executable.) +# +# This file 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; see the file COPYING. If not, write to +# the Free Software Foundation, 51 Franklin Street, Fifth Floor, +# Boston, MA 02110-1301, USA. + +"""Tests for Submodule objects.""" + +# Import from the future +from __future__ import absolute_import + +import pygit2 +import unittest + +from . import utils + +SUBM_NAME = 'submodule' +SUBM_PATH = 'submodule' +SUBM_URL = 'test.com/submodule.git' +SUBM_HEAD_SHA = '784855caf26449a1914d2cf62d12b9374d76ae78' + +class SubmoduleTest(utils.SubmoduleRepoTestCase): + + def test_lookup_submodule(self): + s = self.repo.lookup_submodule(SUBM_PATH) + self.assertIsNotNone(s) + + def test_listall_submodules(self): + submodules = self.repo.listall_submodules() + self.assertEquals(len(submodules), 1) + self.assertEquals(submodules[0], SUBM_PATH) + + def test_submodule_open(self): + s = self.repo.lookup_submodule(SUBM_PATH) + r = s.open() + self.assertIsNotNone(r) + self.assertEquals(str(r.head.target), SUBM_HEAD_SHA) + + def test_name(self): + s = self.repo.lookup_submodule(SUBM_PATH) + self.assertEquals(SUBM_NAME, s.name) + + def test_path(self): + s = self.repo.lookup_submodule(SUBM_PATH) + self.assertEquals(SUBM_PATH, s.path) + + def test_url(self): + s = self.repo.lookup_submodule(SUBM_PATH) + self.assertEquals(SUBM_URL, s.url) + +if __name__ == '__main__': + unittest.main() diff --git a/test/utils.py b/test/utils.py index 07952a1..0aa95d6 100644 --- a/test/utils.py +++ b/test/utils.py @@ -159,3 +159,7 @@ class DirtyRepoTestCase(AutoRepoTestCase): class EmptyRepoTestCase(AutoRepoTestCase): repo_spec = 'tar', 'emptyrepo' + +class SubmoduleRepoTestCase(AutoRepoTestCase): + + repo_spec = 'tar', 'submodulerepo'