def should_allow_admin_to_update_an_event_when_given_valid_input(self): from framework.orm_holder import OrmHolder from giveaminute.models import Event orm = OrmHolder().orm num_events = len(orm.query(Event).all()) # Login as an admin user self.login(1) response = self.app.post('/rest/v1/events/1/', params={ '_method': 'PUT', 'start_datetime': '2011-08-12 12:00:00', 'address': '85 2nd St., San Francisco CA 94105', 'project_id': 1, 'start_datetime': '2011-6-07 12:30', 'need_ids': '1,3' }, status=200) response_dict = json.loads(response.body) print response assert_equal(num_events, len(orm.query(Event).all())) assert_equal(response_dict['name'], 'Gallery Opening') assert_equal(response_dict['start_datetime'], '2011-06-07 12:30:00') assert_equal( set([int(need_dict['id']) for need_dict in response_dict['needs']]), set([1, 3]))
def should_return_true_if_user_is_member(self): from framework.orm_holder import OrmHolder from giveaminute.models import Project, User orm = OrmHolder().orm user = orm.query(User).get(1) project = orm.query(Project).get(1) rules = NonProjectMemberReadOnly() assert rules.is_member(user, project)
def should_not_change_the_event_if_not_logged_in(self): from framework.orm_holder import OrmHolder from giveaminute.models import Event orm = OrmHolder().orm response = self.app.post('/rest/v1/events/1/', params={ '_method': 'PUT', 'name': 'Changed name' }, status=403) print response assert_equal(orm.query(Event).get(1).name, 'Gallery Opening')
def raises_a_BadRequest_error_when_instance_refers_to_a_nonexistant_project( self): from framework.orm_holder import OrmHolder orm = OrmHolder().orm user = Mock() instance = Mock() instance.project = None instance.project_id = 55 access_rules = NonProjectAdminReadOnly() try: access_rules.can_create(user, instance, orm) ok_(False) except BadRequest: pass
def should_not_delete_the_event_if_not_logged_in(self): from framework.orm_holder import OrmHolder from giveaminute.models import Event orm = OrmHolder().orm num_events = len(orm.query(Event).all()) response = self.app.post('/rest/v1/events/1/', params={ '_method': 'DELETE', }, status=403) print response assert_equal(num_events, len(orm.query(Event).all())) assert_in(1, [event.id for event in orm.query(Event).all()])
def should_not_allow_anonymous_user_to_create_needs(self): # Check out http://webpy.org/cookbook/testing_with_paste_and_nose for # more about testing with Paste. from giveaminute.models import Need from framework.orm_holder import OrmHolder orm = OrmHolder().orm orig_needs = len(orm.query(Need).all()) response = self.app.post('/rest/v1/needs/', params={ 'type': 'volunteer', 'request': 'basketball players', 'quantity': '5', 'description': 'Play on my basketball team', 'project_id': 1, }, status=403) final_needs = len(orm.query(Need).all()) assert_equal(orig_needs, final_needs)
def orm(self): """An active orm session for the controller.""" return OrmHolder().orm
def __enter__(self): log.debug("*** Loading the ORM") self.orm = OrmHolder().orm log.debug('***** loaded as %r' % self.orm) return self.orm
responded_user_id = Column(Integer) # Should be foreign key is_active = Column(SmallInteger, nullable=False, default=1) created_datetime = Column(DateTime, nullable=False, default=datetime(1, 1, 1, 0, 0, 0)) updated_datetime = Column(DateTime, nullable=False, default=datetime.now, onupdate=datetime.now) class Location (Base): __tablename__ = 'location' id = Column('location_id', Integer, primary_key=True) name = Column(String(50), nullable=False) lat = Column(Float) lon = Column(Float) borough = Column(String(50)) address = Column(String(100)) city = Column(String(50)) state = Column(String(2)) if __name__ == '__main__': import sys import os sys.path.append(os.path.join(os.path.dirname(__file__), '..')) from framework.orm_holder import OrmHolder oh = OrmHolder() config = oh.get_db_config() engine = oh.get_db_engine(config) Base.metadata.create_all(engine)