def assert_event(self, job_run_status, event_type, event_index, table='test.test_uniqueness_success'): c = Check(check_type=CheckType.uniqueness, check_metadata={'column': 'id'}) j = JobRun(status=job_run_status, scheduled_at=now()) d = self.dummy_datasource() self.s.add_all([c, j, d]) self.s.commit() c.run(j, d, table) l = c.logs[0] event = l.log[event_index] print event self.assertEqual(event['event'], event_type)
class Drowner(Foe): areal = Areal.forest name = 'Утопец' level = 1 traits = [ FoeTrait.night, FoeTrait.weak, FoeTrait.water, FoeTrait.pack, ] skills = [foe_skill.Slippery] hits = 5 attack = 3 to_hit = 5 damage = 1 evade = Check(Attr.dex) block = Check(Attr.str, +1)
class Ekimma(Foe): areal = Areal.mountain name = 'Экимма' level = 1 traits = [ FoeTrait.night, FoeTrait.weak, FoeTrait.scoffer, ] skills = [ foe_skill.Agile, foe_skill.Press, ] hits = 3 attack = 2 to_hit = 4 damage = 1 evade = Check(Attr.dex, -1) block = Check([Attr.str, Attr.dex], difficulty=2) resistance = [ItemTrait.steel]
def test_rule_runs_include_children_rule_checks(self, r, d, jr): r.children.append( Rule(condition=RuleCondition.if_table_name_matches, conditional={'pattern': 'test_uniqueness'}, checks=[ Check(check_type=CheckType.null, check_metadata={'column': 'id'}) ])) checks_to_run = self.run_rule(r, d, jr) self.assertTrue((d, 'test.test_uniqueness_success', r.children[0].checks[0]) in checks_to_run)
def _decorator(self, *args, **kwargs): r = Rule(condition=RuleCondition.if_col_present, conditional={'column': 'id'}, checks=[ Check(check_type=CheckType.uniqueness, check_metadata={'column': 'id'}) ]) d = self.dummy_datasource() jr = self.dummy_job_run(d) self.s.add_all([r, d, jr]) d.open_connection() func(self, r, d, jr) d.close_connection()
def _decorator(self, *args, **kwargs): jt = JobTemplate(log_level=LogLevel.complete, name="Gob") r = Rule(condition=RuleCondition.if_col_present, conditional={'column': 'id'}, checks=[ Check(check_type=CheckType.uniqueness, check_metadata={'column': 'id'}) ]) jt.data_sources.append(self.dummy_datasource()) jt.rules.append(r) self.s.add_all([jt, r]) # Actually runs the job jr = JobRun.create_job_run(jt) # Refresh Obj from DB jr = self.s.query(JobRun).get(jr.id) jt = self.s.query(JobTemplate).get(jt.id) func(self, jt, jr)
def _decorator(self, *args, **kwargs): jt = JobTemplate(log_level=LogLevel.complete, name="Gob") r = Rule(condition=RuleCondition.if_col_present, conditional={'column': 'id'}, checks=[ Check(check_type=CheckType.uniqueness, check_metadata={'column': 'id'}) ], children=[ Rule(condition=RuleCondition.if_col_present, conditional={'column': 'bloo'}) ]) jt.data_sources.append(self.dummy_datasource()) jt.rules.append(r) db_session.add(jt) db_session.commit() jt.become_read_only_clone() func(self, jt)
def post(self, *args, **kwargs): input_username = self.get_argument('username') input_password = self.get_argument('password') #验证用户时需要与数据库交互,放到单独的模块中 check_result = Check.login_check(input_username, input_password) if check_result == 'Invalid user': self.render('user/login.html', login_strings=dict(username='******', password='******')) elif check_result == 'Incorrect password': self.render('user/login.html', login_strings=dict(username='******', password='******')) elif check_result == 'admin': #登录成功才注入cookie,cookie键名可配置,值是用户名 self.set_secure_cookie(COOKIE_NAME, input_username, expires_days=1) self.redirect('/main') else: self.set_secure_cookie(COOKIE_NAME, input_username, expires_days=1) self.redirect('user/login.html')
#! /usr/bin/python # encoding: utf-8 from models.category import Category from models.user import User from models.check import Check from models.base import get_database import sys if __name__ == '__main__': if 'create' in sys.argv: print 'Creating database... .' db = get_database() db.connect() db.create_tables([User, Check, Category], safe=True) print 'Creating database complete.' elif 'fixtures' in sys.argv: User.create('*****@*****.**', 'pass').save() User.create('*****@*****.**', 'pass1').save() elif 'count' in sys.argv: print 'User', User.select().count() print 'Category', Category.select().count() print 'Check', Check.select().count() else: print 'Available actions are [create, fixtures, count]'