TDD Hackerrank: Library Fines
Avoid so many temporary variables

In Python, temporary variables are used only if they benefit readability, not if they hurt it:

def getDateFromCin():
    s = input()
    nums = [int(n) for n in s.split(" ")]
    return datetime.date(nums[2], nums[1],nums[0])


Becomes:

def getDateFromCin():
    nums = [int(n) for n in input().split(" ")]
    return datetime.date(nums[2], nums[1], nums[0])


Actually, @QPaysTaxes suggested to use the splat (*) operator, and I also think it is a good idea, this shortens to function further to just:

return datetime.date(* [int(n) for n in reverse(input().split(" "))])


And:

def testFunc():
    testline = input()

    print (testline + "test")
    return


Becomes:

def testFunc():
    print (input() + "test")
    # return is not needed


And:

def cinMain():
    returnDate = getDateFromCin()
    dueDate = getDateFromCin()
    fine = getFine(dueDate, returnDate)
    print (fine)


Becomes:

def cinMain():
    returnDate = getDateFromCin()
    dueDate = getDateFromCin()
    print( getFine(dueDate, returnDate) )


Small simplifications like this are nothing interesting on their own but when you make a lot of them they start to add up making the code cleaner.

Simplify your booleans

if (returnDate.year == dueDate.year and returnDate.month == dueDate.month and returnDate.day &gt; dueDate.day):
    return 15*(returnDate.day-dueDate.day)


If you got here, then returnDate.year == dueDate.year is surely True, as True and x == x you can simplify:

if (returnDate.month == dueDate.month and returnDate.day &gt; dueDate.day):
        return 15*(returnDate.day-dueDate.day)


Remember to add:

if returnDate &lt;= dueDate:
    return 0


At the start of the function to preserve correctness.

Use a testing framework

You made some work to run the automated tests, but there are already tools for that, I suggest doctest, it is very easy to use and doubles as documentation:

def book_return_fine(dueDate, returnDate):
    """
    &gt;&gt;&gt; book_return_fine(datetime.date(2015,5,5), datetime.date(2016,5,6))
    10000
    """
    if (returnDate.year &gt; dueDate.year):
        return 10000

    if (returnDate.month == dueDate.month and returnDate.day &gt; dueDate.day):
        return 15*(returnDate.day-dueDate.day)

    if (returnDate.month &gt; dueDate.month):
        return 500*(returnDate.month-dueDate.month)

    return 0


Just add import doctest at the start and doctest.testmod() at the end.

Naming

Naming is hard, I really do not like your names.


get is a specific OO concept and gives almost no info about what the function does.
cin is a C++ term, not everyone may remember what it stands for.
nums well, if you convert them to int they are nums but this really does not give me much info...
snake_case is the common Python naming style, not camelCase.


Spacing

Asinnaturallanguage,spacingthingsouthelpsthereaderreadfasterandeasier.


   As in natural language, spacing things out helps the reader read faster and easier.


For example:

return 15*(returnDate.day-dueDate.day)


Becomes:

return 15 * (returnDate.day - dueDate.day)