Exemplo n.º 1
0
class PolygonApi(unittest.TestCase, GoogleAuthMixin):
    def setUp(self):
        app.config['TESTING'] = True
        self.app = app.test_client()
        self.login('*****@*****.**', 'testuser')
        for x in Area.all():
            x.delete()
        for x in Cell.all():
            x.delete()
        r = Report(start=date.today(), finished=False)
        r.put()
        self.r = r
        self.cell = Cell(x=0, y=0, z=2, report=self.r, ndfi_high=1.0, ndfi_low=0.0)
        self.cell.put()
        self.area = Area(geo='[]', added_by=users.get_current_user(), type=1, cell=self.cell)
        self.area.put()

    def test_list(self):
        rv = self.app.get('/api/v0/report/' + str(self.r.key()) + '/cell/2_0_0/polygon')
        js = json.loads(rv.data)
        self.assertEquals(1, len(js))

    def test_create_non_existing_cell(self):
        rv = self.app.post('/api/v0/report/' + str(self.r.key()) + '/cell/2_1_0/polygon',
            data='{"paths": "test", "type": 1}'
        )
        self.assertEquals(2, Area.all().count())
        self.assertEquals(4, Cell.all().count())
        # check parents exists
        cell = Cell.all().filter('report =', self.r).filter('x =', 1).filter('y =', 0).filter('z =', 2).fetch(1)[0]
        self.assertEquals('test', cell.get_parent().last_change_by.nickname())
        self.assertEquals('test', cell.get_parent().get_parent().last_change_by.nickname())
        self.assertNotEquals(0, cell.get_parent().last_change_on)
        

    def test_create(self):
        rv = self.app.post('/api/v0/report/' + str(self.r.key()) + '/cell/2_0_0/polygon',
            data='{"paths": "[]", "type": 1}'
        )
        self.assertEquals(2, Area.all().count())
        rv = self.app.get('/api/v0/report/' + str(self.r.key()) + '/cell/2_0_0/polygon')
        js = json.loads(rv.data)
        self.assertEquals(2, len(js))

    def test_update(self):
        rv = self.app.put('/api/v0/report/' + str(self.r.key()) + '/cell/2_0_0/polygon/' + str(self.area.key()),
            data='{"paths": "[[1, 2, 3]]", "type": 100}'
        )
        self.assertEquals(1, Area.all().count())
        a = Area.get(self.area.key())
        self.assertEquals(100, a.type)
        self.assertEquals("\"[[1, 2, 3]]\"", a.geo)
        js = json.loads(rv.data)
        self.assertEquals(100, js['type'])
        self.assertEquals("[[1, 2, 3]]", js['paths'])

    def test_delete(self):
        rv = self.app.delete('/api/v0/report/' + str(self.r.key()) + '/cell/2_0_0/polygon/' + str(self.area.key()))

        self.assertEquals(0, Area.all().count())
Exemplo n.º 2
0
class PolygonApi(unittest.TestCase, GoogleAuthMixin):
    def setUp(self):
        app.config['TESTING'] = True
        self.app = app.test_client()
        self.login('*****@*****.**', 'testuser')
        for x in Area.all():
            x.delete()
        for x in Cell.all():
            x.delete()
        r = Report(start=date.today(), finished=False)
        r.put()
        self.r = r
        self.cell = Cell(x=0,
                         y=0,
                         z=2,
                         report=self.r,
                         ndfi_high=1.0,
                         ndfi_low=0.0)
        self.cell.put()
        self.area = Area(geo='[]',
                         added_by=users.get_current_user(),
                         type=1,
                         cell=self.cell)
        self.area.put()

    def test_list(self):
        rv = self.app.get('/api/v0/report/' + str(self.r.key()) +
                          '/cell/2_0_0/polygon')
        js = json.loads(rv.data)
        self.assertEquals(1, len(js))

    def test_create_non_existing_cell(self):
        rv = self.app.post('/api/v0/report/' + str(self.r.key()) +
                           '/cell/2_1_0/polygon',
                           data='{"paths": "test", "type": 1}')
        self.assertEquals(2, Area.all().count())
        self.assertEquals(4, Cell.all().count())
        # check parents exists
        cell = Cell.all().filter('report =', self.r).filter('x =', 1).filter(
            'y =', 0).filter('z =', 2).fetch(1)[0]
        self.assertEquals('test', cell.get_parent().last_change_by.nickname())
        self.assertEquals(
            'test',
            cell.get_parent().get_parent().last_change_by.nickname())
        self.assertNotEquals(0, cell.get_parent().last_change_on)

    def test_create(self):
        rv = self.app.post('/api/v0/report/' + str(self.r.key()) +
                           '/cell/2_0_0/polygon',
                           data='{"paths": "[]", "type": 1}')
        self.assertEquals(2, Area.all().count())
        rv = self.app.get('/api/v0/report/' + str(self.r.key()) +
                          '/cell/2_0_0/polygon')
        js = json.loads(rv.data)
        self.assertEquals(2, len(js))

    def test_update(self):
        rv = self.app.put('/api/v0/report/' + str(self.r.key()) +
                          '/cell/2_0_0/polygon/' + str(self.area.key()),
                          data='{"paths": "[[1, 2, 3]]", "type": 100}')
        self.assertEquals(1, Area.all().count())
        a = Area.get(self.area.key())
        self.assertEquals(100, a.type)
        self.assertEquals("\"[[1, 2, 3]]\"", a.geo)
        js = json.loads(rv.data)
        self.assertEquals(100, js['type'])
        self.assertEquals("[[1, 2, 3]]", js['paths'])

    def test_delete(self):
        rv = self.app.delete('/api/v0/report/' + str(self.r.key()) +
                             '/cell/2_0_0/polygon/' + str(self.area.key()))

        self.assertEquals(0, Area.all().count())