Пример #1
0
def get_or_create(item_name, extra_info, get_url, create_url, data):

    response = Request.get(get_url)

    if response.status_code != 200:
        message = "GET error ({}): {}\n{}".format(response.status_code, get_url, response.text)
        raise ValueError(message)

    pks = [item["id"] for item in response.json()]

    if pks == []:
        response = Request.post(create_url, data)

        if response.status_code != 201:
            message = "Create POST error ({}): {}\n{}\n{}".format(response.status_code, create_url, data, response.text)
            raise ValueError(message)

        pk = response.json()["id"]

        if verbose:
            print("Created {} ({}, pk={})".format(item_name, extra_info, pk))

        return pk, True
    else:
        pk = pks[0]

        if len(pks) > 1:
            message = "Found multiple {} instances ({}) for {}; using pk={}".format(item_name, pks, extra_info, pk)
            warnings.warn(message)

        if verbose:
            print("Existing {} ({}, pk={})".format(item_name, extra_info, pk))

        return pk, False
Пример #2
0
class TestRequest(TestCase):
    @classmethod
    def setUp(self):
        self.request = Request()

    def test_get_requests_of_projects(self):
        r = self.request.get('projects')
        self.assertEqual(r.status_code, 200)
Пример #3
0
class TestRequest(TestCase):

    @classmethod
    def setUp(self):
        self.request = Request()

    def test_get_requests_of_projects(self):
        r = self.request.get('projects')
        self.assertEqual(r.status_code, 200)
Пример #4
0
def upload_projects(records):
    """
    Takes in a list of projects,
    uploads them to the configured datastore.
    """
    ### functionalize and map this rather than for loop
    request = Request()
    for record in records:
        r = get_or_create_project(record)
        if r.status_code == 200:
            pass
        else:
            attempt_update_project(record)
Пример #5
0
def get_or_create(item_name, extra_info, get_url, create_url, data):

    response = Request.get(get_url)

    if response.status_code != 200:
        message = "GET error ({}): {}\n{}".format(response.status_code,
                                                  get_url, response.text)
        raise ValueError(message)

    pks = [item["id"] for item in response.json()]

    if pks == []:
        response = Request.post(create_url, data)

        if response.status_code != 201:
            message = "Create POST error ({}): {}\n{}\n{}".format(
                response.status_code, create_url, data, response.text)
            raise ValueError(message)

        pk = response.json()["id"]

        if verbose:
            print("Created {} ({}, pk={})".format(item_name, extra_info, pk))

        return pk, True
    else:
        pk = pks[0]

        if len(pks) > 1:
            message = (
                "Found multiple {} instances ({}) for {}; using pk={}".format(
                    item_name, pks, extra_info, pk))
            warnings.warn(message)

        if verbose:
            print("Existing {} ({}, pk={})".format(item_name, extra_info, pk))

        return pk, False
Пример #6
0
 def setUp(self):
     self.records = [{
         "project_id": "4848c118-7167-4929-8979-e839a20772db",
         "baseline_period_end": "2014-05-27",
         "baseline_period_start": "2013-08-27",
         "reporting_period_start": "2014-08-25",
         "reporting_period_end": "2016-02-11",
         "latitude": "41.26996057364848",
         "longitude": "-95.97935449486408",
         "zipcode": "68111",
         "weather_station": "725500",
         "predicted_electricity_savings": "-1558.3948758637775",
         "predicted_natural_gas_savings": "-43.28523139881372",
         "project_cost": "6592.515721671437"
     }]
     self.request = Request()
Пример #7
0
 def setUp(self):
     self.request = Request()
Пример #8
0
 def setUp(self):
     self.request = Request()