def test_save_activities_with_nan_values(self, mock_mongo): """Should not save fields with NaN values""" test_df = pd.DataFrame({'strava_id': [11, 12], 'a': [np.nan, 2], 'b': [4, float('NaN')]}) save_activities(mock_mongo, test_df) mock_mongo.db.activities.bulk_write.assert_called_with([ UpdateOne({'strava_id': 11}, {'$set': {'b': 4}}, upsert=True), UpdateOne({'strava_id': 12}, {'$set': {'a': 2}}, upsert=True) ])
def test_save_activities_non_numeric(self, mock_mongo): test_df = pd.DataFrame({'strava_id': [11, 12], 'a': [1, 2], 'b': ['foo', 'bar']}) save_activities(mock_mongo, test_df) calls = mock_mongo.method_calls self.assertEqual(len(calls), 1) mock_mongo.db.activities.bulk_write.assert_called_with([ UpdateOne({'strava_id': 11}, {'$set': {'a': 1, 'b': 'foo'}}, upsert=True), UpdateOne({'strava_id': 12}, {'$set': {'a': 2, 'b': 'bar'}}, upsert=True) ])