def test_full_params(dbtransaction, full_photo_params): """Test that a full set of params from NASA API will construct models.""" rover = Rover(**full_photo_params['rover']) camera = Camera(**full_photo_params['camera']) # cam_short_name = full_photo_params['camera']['name'] # camera_name = '_'.join((rover_name, cam_short_name)) photo = Photo(**full_photo_params) DBSession.add_all([rover, camera, photo]) DBSession.flush() assert photo.rover_name == rover.name and photo.camera_name == camera.name
def test_get_rov_sol_too_big(dbtransaction, global_environ, photo_params, rover_params, camera_params): """Compare sol with no photos to next sol with photos. Should be equal.""" rover = rover_params['name'] sol = photo_params['sol'] photo = Photo(**photo_params) DBSession.add(Rover(**rover_params)) DBSession.add(Camera(**camera_params)) DBSession.add(photo) DBSession.flush() assert Photo.get_rov_sol(rover, sol + 500) == Photo.get_rov_sol(rover, sol)
def test_photo_rover_relationship(dbtransaction, rover_params, camera_params, photo_params): """Test Rover, Photo have correct relationship after initialization.""" rover = Rover(**rover_params) camera_params['rover_name'] = rover.name camera_params['rover_name'] = rover.name camera = Camera(**camera_params) photo_params['camera_name'] = camera.name photo = Photo(**photo_params) DBSession.add_all([rover, camera, photo]) DBSession.flush() assert photo.rover_name == rover.name
def test_rov_sol_one_camera(dbtransaction, global_environ, rover_params, camera_params, sol): """Test get_rov_sol return value for a Rover with one Camera.""" rover = rover_params['name'] # camera = '_'.join((rover, camera_params['name'])) DBSession.add(Rover(**rover_params)) DBSession.add(Camera(**camera_params)) DBSession.flush() # expected = {'rover': rover, 'sol': sol, 'photos_by_cam': {camera: []}} # assert Photo.get_rov_sol(rover, sol) == expected with pytest.raises(ValueError): Photo.get_rov_sol(rover, sol)
def test_photo_camera_relationship(dbtransaction, rover_params, camera_params, photo_params): """Test that Photo can access Camera's attributes through relationship.""" rover = Rover(**rover_params) camera_params['rover_name'] = rover.name camera_params['rover_name'] = rover.name camera = Camera(**camera_params) photo_params['camera_name'] = camera.name photo = Photo(**photo_params) DBSession.add_all([rover, camera, photo]) DBSession.flush() assert all([ getattr(camera, attr) == getattr(photo.camera, attr) for attr in camera_params ])
def test_rov_sol_one_photo(dbtransaction, global_environ, rover_params, camera_params, photo_params): """Test return value for get_rov_sol with one Photo.""" rover = rover_params['name'] sol = photo_params['sol'] camera = '_'.join((rover, camera_params['name'])) photo = Photo(**photo_params) DBSession.add(Rover(**rover_params)) DBSession.add(Camera(**camera_params)) DBSession.add(photo) DBSession.flush() expected = { 'rover': rover, 'sol': sol, 'photos_by_cam': { camera: [photo] }, 'last_day': True, 'first_day': False } assert Photo.get_rov_sol(rover, sol) == expected