From 30fea3c7d0c7ceffd7c9e156272a65e74e463128 Mon Sep 17 00:00:00 2001 From: Matt Ward Date: Sun, 16 Oct 2011 20:41:39 +0100 Subject: [PATCH] Prevent IronPython unit test framework from showing fields that start with test as unit tests. --- .../Project/Src/PythonTestFramework.cs | 5 ++- .../PythonTestFrameworkIsTestMemberTests.cs | 39 +++++++++++++++---- 2 files changed, 34 insertions(+), 10 deletions(-) diff --git a/src/AddIns/BackendBindings/Python/PythonBinding/Project/Src/PythonTestFramework.cs b/src/AddIns/BackendBindings/Python/PythonBinding/Project/Src/PythonTestFramework.cs index 8ae0b6729a..238a6b247c 100644 --- a/src/AddIns/BackendBindings/Python/PythonBinding/Project/Src/PythonTestFramework.cs +++ b/src/AddIns/BackendBindings/Python/PythonBinding/Project/Src/PythonTestFramework.cs @@ -12,8 +12,9 @@ namespace ICSharpCode.PythonBinding { public bool IsTestMember(IMember member) { - if (member != null) { - return member.Name.StartsWith("test"); + var method = member as IMethod; + if (method != null) { + return method.Name.StartsWith("test"); } return false; } diff --git a/src/AddIns/BackendBindings/Python/PythonBinding/Test/Testing/PythonTestFrameworkIsTestMemberTests.cs b/src/AddIns/BackendBindings/Python/PythonBinding/Test/Testing/PythonTestFrameworkIsTestMemberTests.cs index de2ac9ce3b..5f85b471f3 100644 --- a/src/AddIns/BackendBindings/Python/PythonBinding/Test/Testing/PythonTestFrameworkIsTestMemberTests.cs +++ b/src/AddIns/BackendBindings/Python/PythonBinding/Test/Testing/PythonTestFrameworkIsTestMemberTests.cs @@ -3,6 +3,7 @@ using System; using ICSharpCode.PythonBinding; +using ICSharpCode.SharpDevelop.Dom; using NUnit.Framework; using PythonBinding.Tests.Utils; using UnitTesting.Tests.Utils; @@ -14,32 +15,54 @@ namespace PythonBinding.Tests.Testing { PythonTestFramework testFramework; - [SetUp] - public void Init() + void CreateTestFramework() { testFramework = new PythonTestFramework(); } [Test] - public void IsTestMemberReturnsTrueForMethodThatStartsWithTest() + public void IsTestMember_MethodThatStartsWithTest_ReturnsTrue() { + CreateTestFramework(); MockClass c = MockClass.CreateMockClassWithoutAnyAttributes(); MockMethod method = new MockMethod(c, "testRunThis"); - Assert.IsTrue(testFramework.IsTestMember(method)); + + bool result = testFramework.IsTestMember(method); + + Assert.IsTrue(result); } [Test] - public void IsTestMemberReturnsFalseForNull() + public void IsTestMember_NullPassed_ReturnsFalse() { - Assert.IsFalse(testFramework.IsTestMember(null)); + CreateTestFramework(); + bool result = testFramework.IsTestMember(null); + + Assert.IsFalse(result); } [Test] - public void IsTestMemberReturnsFalseForMethodThatDoesNotStartWithTest() + public void IsTestMember_MethodThatDoesNotStartWithTest_ReturnsFalse() { + CreateTestFramework(); MockClass c = MockClass.CreateMockClassWithoutAnyAttributes(); MockMethod method = new MockMethod(c, "RunThis"); - Assert.IsFalse(testFramework.IsTestMember(method)); + + bool result = testFramework.IsTestMember(method); + + Assert.IsFalse(result); + } + + [Test] + public void IsTestMember_FieldThatStartsWithTest_ReturnsFalse() + { + CreateTestFramework(); + MockClass c = MockClass.CreateMockClassWithoutAnyAttributes(); + var field = new DefaultField(c, "testField"); + + bool result = testFramework.IsTestMember(field); + + Assert.IsFalse(result); } } }