Commit c5995438 authored by Laura, Jason R's avatar Laura, Jason R
Browse files

Updates DB tests to use mock-alchemy. No live DB connections anymore!

parent f6b98a7c
Loading
Loading
Loading
Loading
+4 −4
Original line number Diff line number Diff line
@@ -40,12 +40,12 @@ def complex_message():
                      'kwargs' : {"k1" : "foo", "k2" : "bar"},
                      'func':'autocnet.place_points'}, cls=JsonEncoder)

def test_manage_simple_messages(args, queue, simple_message, mocker, capfd, ncg):
def test_manage_simple_messages(args, queue, simple_message, mocker, capfd, session):
    queue.rpush(args['processing_queue'], simple_message)

    response_msg = {'success':True, 
                    'results':'Things were good.', 
                    'kwargs' : {'Session' : ncg.Session}}
                    'kwargs' : {'Session' : session}}
    mocker.patch('autocnet.graph.cluster_submit.process', return_value=response_msg)
    mocker.patch.dict(os.environ, {"SLURM_JOB_ID": "1000"}) 

@@ -54,10 +54,10 @@ def test_manage_simple_messages(args, queue, simple_message, mocker, capfd, ncg)
    # Check that the messages are finalizing
    assert queue.llen(args['working_queue']) == 0

def test_manage_complex_messages(args, queue, complex_message, mocker, capfd, ncg):
def test_manage_complex_messages(args, queue, complex_message, mocker, capfd, session):
    queue.rpush(args['processing_queue'], complex_message)

    response_msg = {'success':True, 'results':'Things were good.', 'kwargs' : {'Session' : ncg.Session}}
    response_msg = {'success':True, 'results':'Things were good.', 'kwargs' : {'Session' : session}}
    mocker.patch('autocnet.graph.cluster_submit.process', return_value=response_msg)
    mocker.patch.dict(os.environ, {"SLURM_JOB_ID": "1000"}) 
 
+2 −8
Original line number Diff line number Diff line
@@ -5,17 +5,13 @@ import os

import sqlalchemy
from sqlalchemy.ext.declarative import declarative_base
from sqlalchemy import (Column, String, Integer, Float, \
                        ForeignKey, Boolean, LargeBinary, \
                        UniqueConstraint, event, DateTime
                        )
from sqlalchemy import Column, String, Integer, Float, ForeignKey, Boolean, event, DateTime                         
from sqlalchemy.dialects.postgresql import ARRAY, JSONB
from sqlalchemy.orm import relationship, backref
from sqlalchemy_utils import database_exists, create_database
from sqlalchemy.types import TypeDecorator
from sqlalchemy.ext.hybrid import hybrid_property
from sqlalchemy.orm.attributes import QueryableAttribute
from sqlalchemy import text
from sqlalchemy.sql import func

from geoalchemy2 import Geometry
@@ -44,7 +40,6 @@ class BaseMixin(object):
        
        default.extend(['id', 'modified_at', 'created_at'])

        
        if not _path:
            _path = self.__tablename__.lower()

@@ -158,8 +153,7 @@ class BaseMixin(object):
        return obj

    @staticmethod
    def bulkadd(iterable, Session):
        session = Session()
    def bulkadd(iterable, session):
        session.add_all(iterable)
        session.commit()
        session.close()   
+1 −1
Original line number Diff line number Diff line
@@ -33,5 +33,5 @@ def test_get_images_intersecting_point(session):
    session.filter(Images)

    point = Point(1,0)
    res = Images.get_images_intersecting_point(point, session)
    Images.get_images_intersecting_point(point, session)
    session.filter.assert_called_once()
+3 −20
Original line number Diff line number Diff line
import pytest
import sqlalchemy
from shapely import Polygon, Point
from shapely import Polygon
from autocnet.io.db.model import Overlay

def test_overlay_exists(tables):
    assert Overlay.__tablename__ in tables

def test_latitudinal_srid(session):
    """
    Tests that the object is properly setting the latitudinal SRID
    from the configuration file.
    """
    o1={'id':1, 'intersections':[1,2,3],
        'geom':Polygon([(0,0), (-1,0), (-1,-1), (0,-1), (0,0)])}
    a = Overlay.create(session, **o1)
    assert a.latitudinal_srid == 4326
    session.commit()
    res = session.query(Overlay).first()
    assert res.id == 1
    assert res.latitudinal_srid == 4326

@pytest.mark.parametrize('data', [
    {'id':1},
@@ -42,5 +25,5 @@ def test_overlapping_larger_than(session):
    session.commit()

    larger = Overlay.overlapping_larger_than(0.5, session)
    assert len(larger) == 1
    assert larger[0].id == 1

    session.filter.assert_called_once()
+7 −1
Original line number Diff line number Diff line
@@ -80,3 +80,9 @@ def test_add_measures_to_point(session):
    assert point.measures[1].sample == 0.5
    assert point.measures[2].serial == 'serial'
    assert point.measures[3].imageid == 0

def test_bulk_add(session):
    point = Points()
    points = [point] * 10
    Points.bulkadd(points, session)
    assert len(session.query(Points).all()) == 10
 No newline at end of file
Loading