def test_should_delegate_to_project_get_property_when_attribute_is_not_defined(self): project_mock = Project(".") project_mock.has_property = Mock(return_value=True) project_mock.get_property = Mock(return_value="eggs") self.assertEquals("eggs", ProjectDictWrapper(project_mock, Mock())["spam"]) project_mock.get_property.assert_called_with("spam")
def test_should_delegate_to_project_get_property_when_attribute_is_not_defined(self): project_mock = Project(".") project_mock.has_property = Mock(return_value=True) project_mock.get_property = Mock(return_value="eggs") self.assertEqual("eggs", ProjectDictWrapper(project_mock, Mock())["spam"]) project_mock.get_property.assert_called_with("spam")
def test_should_warn_when_substitution_is_skipped(self): project_mock = Project(".") logger_mock = Mock() project_mock.has_property = Mock(return_value=False) project_mock.get_property = Mock() self.assertEquals("${n/a}", ProjectDictWrapper(project_mock, logger_mock)["n/a"]) project_mock.get_property.assert_not_called() logger_mock.warn.assert_called_with( "Skipping impossible substitution for 'n/a' - there is no matching project attribute or property.")
def test_should_warn_when_substitution_is_skipped(self): project_mock = Project(".") logger_mock = Mock() project_mock.has_property = Mock(return_value=False) project_mock.get_property = Mock() self.assertEqual("${n/a}", ProjectDictWrapper(project_mock, logger_mock)["n/a"]) project_mock.get_property.assert_not_called() logger_mock.warn.assert_called_with( "Skipping impossible substitution for 'n/a' - there is no matching project attribute or property.")
class ProjectTest (unittest.TestCase): def setUp(self): self.project = Project(basedir="/imaginary", name="Unittest") def test_should_pick_directory_name_for_project_name_when_name_is_not_given(self): try: when(os.path).basename("/imaginary").thenReturn("imaginary") project = Project(basedir="/imaginary") self.assertEquals("imaginary", project.name) verify(os.path).basename("/imaginary") finally: unstub() def test_get_property_should_return_default_value_when_property_is_not_set(self): self.assertEquals("spam", self.project.get_property("spam", "spam")) def test_get_property_should_return_property_value_when_property_is_set(self): self.project.set_property("spam", "eggs") self.assertEquals("eggs", self.project.get_property("spam", "spam")) def test_has_property_should_return_false_when_property_is_not_set(self): self.assertFalse(self.project.has_property("spam")) def test_has_property_should_return_true_when_property_is_set(self): self.project.set_property("spam", "eggs") self.assertTrue(self.project.has_property("spam")) def test_set_property_if_unset_should_set_property_when_property_is_not_set(self): self.project.set_property_if_unset("spam", "spam") self.assertEquals("spam", self.project.get_property("spam")) def test_set_property_if_unset_should_not_set_property_when_property_is_already_set(self): self.project.set_property("spam", "eggs") self.project.set_property_if_unset("spam", "spam") self.assertEquals("eggs", self.project.get_property("spam")) def test_expand_should_raise_exception_when_property_is_not_set(self): self.assertRaises( MissingPropertyException, self.project.expand, "$spam") def test_expand_should_return_expanded_string_when_property_is_set(self): self.project.set_property("spam", "eggs") self.assertEquals("eggs", self.project.expand("$spam")) def test_expand_should_return_expanded_string_when_two_properties_are_found_and_set(self): self.project.set_property("spam", "spam") self.project.set_property("eggs", "eggs") self.assertEquals( "spam and eggs", self.project.expand("$spam and $eggs")) def test_expand_should_expand_property_with_value_being_an_property_expression(self): self.project.set_property("spam", "spam") self.project.set_property("eggs", "$spam") self.assertEquals("spam", self.project.expand("$eggs")) def test_expand_should_raise_exception_when_first_expansion_leads_to_property_reference_and_property_is_undefined(self): self.project.set_property("eggs", "$spam") self.assertRaises( MissingPropertyException, self.project.expand, "$eggs") def test_expand_path_should_return_expanded_path(self): self.project.set_property("spam", "spam") self.project.set_property("eggs", "eggs") self.assertEquals(os.path.join("/imaginary", "spam", "eggs"), self.project.expand_path("$spam/$eggs")) def test_expand_path_should_return_expanded_path_and_additional_parts_when_additional_parts_are_given(self): self.project.set_property("spam", "spam") self.project.set_property("eggs", "eggs") self.assertEquals( os.path.join("/imaginary", "spam", "eggs", "foo", "bar"), self.project.expand_path("$spam/$eggs", "foo", "bar")) def test_should_raise_exception_when_getting_mandatory_propert_and_property_is_not_found(self): self.assertRaises(MissingPropertyException, self.project.get_mandatory_property, "i_dont_exist") def test_should_return_property_value_when_getting_mandatory_propert_and_property_exists(self): self.project.set_property("spam", "spam") self.assertEquals("spam", self.project.get_mandatory_property("spam")) def test_should_add_runtime_dependency_with_name_only(self): self.project.depends_on("spam") self.assertEquals(1, len(self.project.dependencies)) self.assertEquals("spam", self.project.dependencies[0].name) self.assertEquals(None, self.project.dependencies[0].version) def test_should_add_dependency_with_name_and_version(self): self.project.depends_on("spam", "0.7") self.assertEquals(1, len(self.project.dependencies)) self.assertEquals("spam", self.project.dependencies[0].name) self.assertEquals("0.7", self.project.dependencies[0].version) def test_should_add_dependency_with_name_and_version_only_once(self): self.project.depends_on("spam", "0.7") self.project.depends_on("spam", "0.7") self.assertEquals(1, len(self.project.dependencies)) self.assertEquals("spam", self.project.dependencies[0].name) self.assertEquals("0.7", self.project.dependencies[0].version)
class ProjectTest(unittest.TestCase): def setUp(self): self.project = Project(basedir="/imaginary", name="Unittest") @patch("pybuilder.core.basename", return_value="imaginary") def test_should_pick_directory_name_for_project_name_when_name_is_not_given( self, os_path_basename): project = Project(basedir="/imaginary") self.assertEqual("imaginary", project.name) os_path_basename.assert_called_with("/imaginary") def test_get_property_should_return_default_value_when_property_is_not_set( self): self.assertEqual("spam", self.project.get_property("spam", "spam")) def test_get_property_should_return_property_value_when_property_is_set( self): self.project.set_property("spam", "eggs") self.assertEqual("eggs", self.project.get_property("spam", "spam")) def test_has_property_should_return_false_when_property_is_not_set(self): self.assertFalse(self.project.has_property("spam")) def test_has_property_should_return_true_when_property_is_set(self): self.project.set_property("spam", "eggs") self.assertTrue(self.project.has_property("spam")) def test_set_property_if_unset_should_set_property_when_property_is_not_set( self): self.project.set_property_if_unset("spam", "spam") self.assertEqual("spam", self.project.get_property("spam")) def test_set_property_if_unset_should_not_set_property_when_property_is_already_set( self): self.project.set_property("spam", "eggs") self.project.set_property_if_unset("spam", "spam") self.assertEqual("eggs", self.project.get_property("spam")) def test_expand_should_raise_exception_when_property_is_not_set(self): self.assertRaises(MissingPropertyException, self.project.expand, "$spam") def test_expand_should_return_expanded_string_when_property_is_set(self): self.project.set_property("spam", "eggs") self.assertEqual("eggs", self.project.expand("$spam")) def test_expand_should_return_expanded_string_when_two_properties_are_found_and_set( self): self.project.set_property("spam", "spam") self.project.set_property("eggs", "eggs") self.assertEqual("spam and eggs", self.project.expand("$spam and $eggs")) def test_expand_should_expand_property_with_value_being_an_property_expression( self): self.project.set_property("spam", "spam") self.project.set_property("eggs", "$spam") self.assertEqual("spam", self.project.expand("$eggs")) def test_expand_should_raise_exception_when_first_expansion_leads_to_property_reference_and_property_is_undefined( self): self.project.set_property("eggs", "$spam") self.assertRaises(MissingPropertyException, self.project.expand, "$eggs") def test_expand_path_should_return_expanded_path(self): self.project.set_property("spam", "spam") self.project.set_property("eggs", "eggs") self.assertEqual(np(jp(self.project.basedir, "spam", "eggs")), self.project.expand_path("$spam/$eggs")) def test_expand_path_should_return_expanded_path_and_additional_parts_when_additional_parts_are_given( self): self.project.set_property("spam", "spam") self.project.set_property("eggs", "eggs") self.assertEqual( np(jp(self.project.basedir, "spam", "eggs", "foo", "bar")), self.project.expand_path("$spam/$eggs", "foo", "bar")) def test_should_raise_exception_when_getting_mandatory_propert_and_property_is_not_found( self): self.assertRaises(MissingPropertyException, self.project.get_mandatory_property, "i_dont_exist") def test_should_return_property_value_when_getting_mandatory_propert_and_property_exists( self): self.project.set_property("spam", "spam") self.assertEqual("spam", self.project.get_mandatory_property("spam")) def test_should_add_runtime_dependency_with_name_only(self): self.project.depends_on("spam") self.assertEqual(1, len(self.project.dependencies)) self.assertEqual("spam", self.project.dependencies[0].name) self.assertEqual(None, self.project.dependencies[0].version) def test_should_add_dependency_with_name_and_version(self): self.project.depends_on("spam", "0.7") self.assertEqual(1, len(self.project.dependencies)) self.assertEqual("spam", self.project.dependencies[0].name) self.assertEqual(">=0.7", self.project.dependencies[0].version) def test_should_add_dependency_with_name_and_version_only_once(self): self.project.depends_on("spam", "0.7") self.project.depends_on("spam", "0.7") self.assertEqual(1, len(self.project.dependencies)) self.assertEqual("spam", self.project.dependencies[0].name) self.assertEqual(">=0.7", self.project.dependencies[0].version)