tests: target DateTime 3 and use mock to monkey patch
mock has several advantages, the main one here is that it errors when patching does not replace an existing attribute, which happens when we are not patching the right place. These attributes are not the same place in DateTime 2 and 3, this code when using DateTime 2 was replacing the attributes, but in DateTime 3 it was just creating new attributes that were never used. Update the code to patch the DateTime 3 location