Skip to content

Commit

Permalink
Push fake snakenamed methods at the end
Browse files Browse the repository at this point in the history
  • Loading branch information
Martin-Molinero committed Apr 17, 2024
1 parent 4e7ca42 commit 8ff1749
Show file tree
Hide file tree
Showing 4 changed files with 283 additions and 180 deletions.
28 changes: 28 additions & 0 deletions src/embed_tests/ClassManagerTests.cs
Original file line number Diff line number Diff line change
Expand Up @@ -710,6 +710,11 @@ public int another_int_property()
return 654;
}

public dynamic a(AlreadyDefinedSnakeCaseMemberTestBaseClass a)
{
throw new Exception("a(AlreadyDefinedSnakeCaseMemberTestBaseClass)");
}

public int a()
{
throw new Exception("a()");
Expand Down Expand Up @@ -766,6 +771,10 @@ public int A()
{
throw new Exception("A()");
}
public PyObject A(PyObject a)
{
throw new Exception("A(PyObject)");
}
public override int get_value(int x)
{
throw new Exception("override get_value(int x)");
Expand Down Expand Up @@ -801,8 +810,27 @@ public override int GetValue2(int x)
// original beats fake
[TestCase(typeof(AlreadyDefinedSnakeCaseMemberTestDerivedClass), "get_value_2", new object[] { 2 }, "get_value_2(int x)")]
[TestCase(typeof(AlreadyDefinedSnakeCaseMemberTestDerivedClass), "get_value_3", new object[] { 2 }, "get_value_3(int x)")]

[TestCase(typeof(AlreadyDefinedSnakeCaseMemberTestDerivedClass), "a", new object[] { "AlreadyDefinedSnakeCaseMemberTestBaseClass" }, "a(AlreadyDefinedSnakeCaseMemberTestBaseClass)")]
// A(PyObject) is real
[TestCase(typeof(AlreadyDefinedSnakeCaseMemberTestDerivedClass), "A", new object[] { "AlreadyDefinedSnakeCaseMemberTestBaseClass" }, "A(PyObject)")]
[TestCase(typeof(AlreadyDefinedSnakeCaseMemberTestDerivedClass), "a", new object[] { "Type" }, "A(PyObject)")]
[TestCase(typeof(AlreadyDefinedSnakeCaseMemberTestDerivedClass), "A", new object[] { "Type" }, "A(PyObject)")]
[TestCase(typeof(AlreadyDefinedSnakeCaseMemberTestDerivedClass), "A", new object[] { "Type" }, "A(PyObject)")]
public void BindsSnakeCasedMethodAsOverload(Type type, string methodName, object[] args, string expectedMessage)
{
if (args.Length == 1)
{
if (args[0] is "AlreadyDefinedSnakeCaseMemberTestBaseClass")
{
args = new object[] { new AlreadyDefinedSnakeCaseMemberTestBaseClass() };
}
else if (args[0] is "Type")
{
args = new object[] { typeof(string) };
}
}

var obj = Activator.CreateInstance(type);
using var pyObj = obj.ToPython();

Expand Down
Loading

0 comments on commit 8ff1749

Please sign in to comment.