void (final String className, final String expectedError, final String... memberNames) { try { String baseName = "/refactoring/pushdown/" + getTestName(true); myFixture.configureByFile(baseName + ".before.py"); final PyClass clazz = findClass(className); final List<PyMemberInfo<PyElement>> members = new ArrayList<>(); for (String memberName : memberNames) { final PyElement member = findMember(className, memberName); members.add(MembersManager.findMember(clazz, member)); } final PyPushDownProcessor processor = new PyPushDownProcessor(myFixture.getProject(), members, clazz); moveViaProcessor(myFixture.getProject(), processor); myFixture.checkResultByFile(baseName + ".after.py"); } catch (Exception e) { if (expectedError == null) throw e; assertTrue(e.getMessage(), e.getMessage().contains(expectedError)); } }