Did you know that you can navigate the posts by swiping left and right?

GSoC [04]: Writing Tests, Getting Evaluated!


25 Jun 2018 . 2 mins : experience . Comments
#GSoC #Nephos #Evaluation

This blog post summarizes the work I’ve done in the third and fourth week of GSoC with CCExtractor on Project Nephos and also information about my first evaluations. The beginning of the weeks were mostly hectic but the productivity took a toll once I was past writing code and onto actual testing.


The start of the third week begin with finishing up with whatever was left to be done in the main code base; chiefly, creation of the recorder’s pipeline, stream lining log outputs and validating inputs given by the user. I implemented RegEx checks for the frequent input formats.

The main motive of filtering user input before being accepted into the program is to avoid imperceptible errors and command injection into the client since it could lead to security breach as we are using shell=True in the subprocess command. The validation is further strengthened by the exception handling of the program. Since this is an all time self running client, things have been kept as robust as possible to avoid any untimely halt.

Once assured of the working of the module (in theory), I started writing test code and it had been a magical experience; creating functions, classes variables out of thin air, literally. It was all possible due to Python’s standard mock and patch classes. Testing also helped me know the function that were not behaving as they were intended to.

Write, Test, Refactor, Repeat

One takeaway from this entire process is that writing pure functions is always beneficial. Pure functions are basically functions that take in arguments, and return values and have minimal interaction with the code outside it’s scope. This makes it easier for writing tests as well as leaves narrow scope for extra-scope bugs.

Into the second week, and things got slow, real slow. I was supposed to access a remote testing server using IPSec VPN and it is, unfortunately, not possible on Linux in this case. I had to try multiple operating systems and settings and a lot of help from Carlos, my mentor, to get things to working. It’s still not stable but doable. One week went into this unwanted adventure, and that was the least productive part of my project till now.


I’ve passed my first evaluation, yet satisfaction won’t kick in till I don’t see my code working on the server. Future seems more pleasing and adventurous, I might be diving into developing a wrapper around CCExtractor for python.

Let’s see how the weeks unfold!

It is not good in the future that excites man, but the hope of good


Me

I'm intrigued by human psychology and code backend for videogames. I live with a philosophy to be simple, true, and kind always. I enjoy taking days slowly and writing when I learn something new - ah! that reminds me, I enjoy learning from new experiences a lot.