In this paper, we focus on developing automatic assessment (AA) for a topic that has some difficulties in its practical assessment: object oriented programming (OOP). For evaluating that the OOP principles have been correctly applied to a real application, we use unit testing. In this paper, we focus on prioritizing that the students understand and apply correctly complex OOP principles and that they design properly the classes (including their relationships). In addition, we focus on the Python programming language rather than the typical previous works' focus in this area. Thus, we present a real case study of a practical assignment, in which the students have to implement characters for a video game. This assignment has the particularities and advantages that it is incremental and that it applies all four OOP principles within a single assignment. We also present its solution with the UML class diagram description. Furthermore, we provide unit testing for this case study and give general advice for generalizing the unit tests to other real case scenarios. Finally, we corroborate the effectiveness of our approach with positive student evaluations.