Skip to content

Commit e276e65

Browse files
committed
test: add tests for duplicate dependencies
1 parent 7fd17eb commit e276e65

2 files changed

Lines changed: 47 additions & 0 deletions

File tree

test/unit/test_input_recipe.py

Lines changed: 21 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -184,6 +184,27 @@ def testNestedCheckoutDep(self):
184184
self.cmpEntry(res[4], "e")
185185
self.cmpEntry(res[5], "f", checkoutDep=True)
186186

187+
def testNameAndDepends(self):
188+
"""A dependency must not use 'name' and 'depends' at the same time"""
189+
deps = [
190+
{
191+
"name" : "a",
192+
"depends" : [],
193+
}
194+
]
195+
with self.assertRaises(ParseError):
196+
list(Recipe.Dependency.parseEntries(MagicMock(), deps))
197+
198+
def testNeitherNameNorDepends(self):
199+
"""A dependency must use 'name' or 'depends'"""
200+
deps = [
201+
{
202+
"if" : "a",
203+
}
204+
]
205+
with self.assertRaises(ParseError):
206+
list(Recipe.Dependency.parseEntries(MagicMock(), deps))
207+
187208

188209
class RecipeCommon:
189210

test/unit/test_input_recipeset.py

Lines changed: 26 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -877,6 +877,32 @@ def testPackageDepends(self):
877877
self.assertEqual(p.getPackageStep().getArguments()[2].getPackage().getName(),
878878
"lib2")
879879

880+
def testDuplicateDep(self):
881+
"""Dependencies must only be named once"""
882+
self.writeRecipe("root", """\
883+
root: True
884+
depends: [a, a]
885+
""")
886+
self.writeRecipe("a", "")
887+
888+
packages = self.generate()
889+
self.assertRaises(ParseError, packages.getRootPackage)
890+
891+
def testDuplicateDepWithClass(self):
892+
"""Dependencies must only be named once"""
893+
self.writeRecipe("root", """\
894+
root: True
895+
inherit: [cls]
896+
depends: [a]
897+
""")
898+
self.writeClass("cls", """\
899+
depends: [a]
900+
""")
901+
self.writeRecipe("a", "")
902+
903+
packages = self.generate()
904+
self.assertRaises(ParseError, packages.getRootPackage)
905+
880906
class TestDependencyEnv(RecipesTmp, TestCase):
881907
"""Tests related to "environment" block in dependencies"""
882908

0 commit comments

Comments
 (0)