import unittest
from mock import Mock
from cartodb_services.mapbox.true_isolines import MapboxTrueIsolines, DEFAULT_PROFILE
from cartodb_services.tools import Coordinate

from credentials import mapbox_api_key

VALID_ORIGIN = Coordinate(-73.989, 40.733)


class MapboxTrueIsolinesTestCase(unittest.TestCase):

    def setUp(self):
        self.mapbox_isolines = MapboxTrueIsolines(apikey=mapbox_api_key(),
                                                  logger=Mock())

    def test_calculate_isochrone(self):
        time_ranges = [300, 900]
        solution = self.mapbox_isolines.calculate_isochrone(
            origin=VALID_ORIGIN,
            profile=DEFAULT_PROFILE,
            time_ranges=time_ranges)

        assert solution

    def test_calculate_isodistance(self):
        distance_range = 10000
        solution = self.mapbox_isolines.calculate_isodistance(
            origin=VALID_ORIGIN,
            profile=DEFAULT_PROFILE,
            distance_range=distance_range)

        assert solution

import unittest
from mock import Mock
from cartodb_services.mapbox.true_isolines import MapboxTrueIsolines, DEFAULT_PROFILE
from cartodb_services.tools import Coordinate

from credentials import mapbox_api_key

VALID_ORIGIN = Coordinate(-73.989, 40.733)


class MapboxTrueIsolinesTestCase(unittest.TestCase):

    def setUp(self):
        self.mapbox_isolines = MapboxTrueIsolines(apikey=mapbox_api_key(),
                                                  logger=Mock())

    def test_invalid_time_range(self):
        time_ranges = [4000]

        with self.assertRaises(ValueError):
            solution = self.mapbox_isolines.calculate_isochrone(
                origin=VALID_ORIGIN,
                profile=DEFAULT_PROFILE,
                time_ranges=time_ranges)

    def test_calculate_isochrone(self):
        time_ranges = [300, 900]
        solution = self.mapbox_isolines.calculate_isochrone(
            origin=VALID_ORIGIN,
            profile=DEFAULT_PROFILE,
            time_ranges=time_ranges)

        assert solution

    def test_calculate_isodistance(self):
        distance_range = 10000
        solution = self.mapbox_isolines.calculate_isodistance(
            origin=VALID_ORIGIN,
            profile=DEFAULT_PROFILE,
            distance_range=distance_range)

        assert solution

Add test to validate time ranges
Add test to validate time ranges

  import unittest
  from mock import Mock
  from cartodb_services.mapbox.true_isolines import MapboxTrueIsolines, DEFAULT_PROFILE
  from cartodb_services.tools import Coordinate
  
  from credentials import mapbox_api_key
  
  VALID_ORIGIN = Coordinate(-73.989, 40.733)
  
  
  class MapboxTrueIsolinesTestCase(unittest.TestCase):
  
      def setUp(self):
          self.mapbox_isolines = MapboxTrueIsolines(apikey=mapbox_api_key(),
                                                    logger=Mock())
+ 
+     def test_invalid_time_range(self):
+         time_ranges = [4000]
+ 
+         with self.assertRaises(ValueError):
+             solution = self.mapbox_isolines.calculate_isochrone(
+                 origin=VALID_ORIGIN,
+                 profile=DEFAULT_PROFILE,
+                 time_ranges=time_ranges)
  
      def test_calculate_isochrone(self):
          time_ranges = [300, 900]
          solution = self.mapbox_isolines.calculate_isochrone(
              origin=VALID_ORIGIN,
              profile=DEFAULT_PROFILE,
              time_ranges=time_ranges)
  
          assert solution
  
      def test_calculate_isodistance(self):
          distance_range = 10000
          solution = self.mapbox_isolines.calculate_isodistance(
              origin=VALID_ORIGIN,
              profile=DEFAULT_PROFILE,
              distance_range=distance_range)
  
          assert solution
  
Add test to validate time ranges
## Code Before:
import unittest
from mock import Mock
from cartodb_services.mapbox.true_isolines import MapboxTrueIsolines, DEFAULT_PROFILE
from cartodb_services.tools import Coordinate

from credentials import mapbox_api_key

VALID_ORIGIN = Coordinate(-73.989, 40.733)


class MapboxTrueIsolinesTestCase(unittest.TestCase):

    def setUp(self):
        self.mapbox_isolines = MapboxTrueIsolines(apikey=mapbox_api_key(),
                                                  logger=Mock())

    def test_calculate_isochrone(self):
        time_ranges = [300, 900]
        solution = self.mapbox_isolines.calculate_isochrone(
            origin=VALID_ORIGIN,
            profile=DEFAULT_PROFILE,
            time_ranges=time_ranges)

        assert solution

    def test_calculate_isodistance(self):
        distance_range = 10000
        solution = self.mapbox_isolines.calculate_isodistance(
            origin=VALID_ORIGIN,
            profile=DEFAULT_PROFILE,
            distance_range=distance_range)

        assert solution

## Instruction:
Add test to validate time ranges
## Code After:
import unittest
from mock import Mock
from cartodb_services.mapbox.true_isolines import MapboxTrueIsolines, DEFAULT_PROFILE
from cartodb_services.tools import Coordinate

from credentials import mapbox_api_key

VALID_ORIGIN = Coordinate(-73.989, 40.733)


class MapboxTrueIsolinesTestCase(unittest.TestCase):

    def setUp(self):
        self.mapbox_isolines = MapboxTrueIsolines(apikey=mapbox_api_key(),
                                                  logger=Mock())

    def test_invalid_time_range(self):
        time_ranges = [4000]

        with self.assertRaises(ValueError):
            solution = self.mapbox_isolines.calculate_isochrone(
                origin=VALID_ORIGIN,
                profile=DEFAULT_PROFILE,
                time_ranges=time_ranges)

    def test_calculate_isochrone(self):
        time_ranges = [300, 900]
        solution = self.mapbox_isolines.calculate_isochrone(
            origin=VALID_ORIGIN,
            profile=DEFAULT_PROFILE,
            time_ranges=time_ranges)

        assert solution

    def test_calculate_isodistance(self):
        distance_range = 10000
        solution = self.mapbox_isolines.calculate_isodistance(
            origin=VALID_ORIGIN,
            profile=DEFAULT_PROFILE,
            distance_range=distance_range)

        assert solution
