Cartodb geocoder python module tests fixed

This commit is contained in:
Mario de Frutos
2016-01-21 18:07:27 +01:00
parent aced68096b
commit c74947b0a5
6 changed files with 237 additions and 163 deletions

View File

@@ -1,48 +1,41 @@
import test_helper
from cartodb_geocoder import config_helper
from unittest import TestCase
from nose.tools import assert_raises
from mockredis import MockRedis
from datetime import datetime, timedelta
class TestConfigHelper(TestCase):
def test_should_return_list_of_user_config_if_its_ok(self):
user_config_json = '{"is_organization": false, "entity_name": "test_user"}'
user_config = config_helper.UserConfig(user_config_json, 'development_cartodb_user_UUID')
assert user_config.is_organization == False
assert user_config.entity_name == 'test_user'
assert user_config.user_id == 'UUID'
def setUp(self):
self.redis_conn = MockRedis()
def test_should_return_raise_config_exception_if_not_ok(self):
user_config_json = '{"is_organization": "false"}'
assert_raises(config_helper.ConfigException, config_helper.UserConfig, user_config_json)
def test_should_return_list_of_nokia_geocoder_config_if_its_ok(self):
test_helper.build_redis_user_config(self.redis_conn, 'test_user')
geocoder_config = config_helper.GeocoderConfig(self.redis_conn,
'test_user', None,
'nokia_id', 'nokia_cod')
assert geocoder_config.heremaps_geocoder == True
assert geocoder_config.geocoding_quota == 100
assert geocoder_config.soft_geocoding_limit == False
def test_should_return_raise_config_exception_if_empty(self):
user_config_json = '{}'
assert_raises(config_helper.ConfigException, config_helper.UserConfig, user_config_json)
def test_should_return_list_of_nokia_geocoder_config_ok_for_org(self):
yesterday = datetime.today() - timedelta(days=1)
test_helper.build_redis_user_config(self.redis_conn, 'test_user')
test_helper.build_redis_org_config(self.redis_conn, 'test_org',
quota=200, end_date=yesterday)
geocoder_config = config_helper.GeocoderConfig(self.redis_conn,
'test_user', 'test_org',
'nokia_id', 'nokia_cod')
assert geocoder_config.heremaps_geocoder == True
assert geocoder_config.geocoding_quota == 200
assert geocoder_config.soft_geocoding_limit == False
assert geocoder_config.period_end_date.date() == yesterday.date()
def test_should_return_list_of_nokia_geocoder_config_if_its_ok(self):
geocoder_config_json = """{"street_geocoder_provider": "Nokia",
"nokia_monthly_quota": 100, "nokia_soft_geocoder_limit": false}"""
geocoder_config = config_helper.GeocoderConfig(geocoder_config_json)
assert geocoder_config.nokia_geocoder == True
assert geocoder_config.nokia_monthly_quota == 100
assert geocoder_config.nokia_soft_limit == False
def test_should_raise_configuration_exception_when_missing_nokia_geocoder_parameters(self):
geocoder_config_json = '{"street_geocoder_provider": "NokiA", "nokia_monthly_quota": "100"}'
assert_raises(config_helper.ConfigException, config_helper.GeocoderConfig, geocoder_config_json)
def test_should_raise_configuration_exception_when_missing_nokia_geocoder_parameters_2(self):
geocoder_config_json = '{"street_geocoder_provider": "NoKia", "nokia_soft_geocoder_limit": "false"}'
assert_raises(config_helper.ConfigException, config_helper.GeocoderConfig, geocoder_config_json)
def test_should_return_list_of_google_geocoder_config_if_its_ok(self):
geocoder_config_json = """{"street_geocoder_provider": "gOOgle",
"google_maps_private_key": "sdasdasda"}"""
geocoder_config = config_helper.GeocoderConfig(geocoder_config_json)
assert geocoder_config.google_geocoder == True
assert geocoder_config.google_api_key == 'sdasdasda'
def test_should_raise_configuration_exception_when_missing_google_api_key(self):
geocoder_config_json = '{"street_geocoder_provider": "google"}'
assert_raises(config_helper.ConfigException, config_helper.GeocoderConfig, geocoder_config_json)
def test_should_raise_configuration_exception_when_missing_nokia_geocoder_parameters(self):
test_helper.build_redis_user_config(self.redis_conn, 'test_user')
assert_raises(config_helper.ConfigException,
config_helper.GeocoderConfig,
self.redis_conn, 'test_user',
None, None, None)