def cleanup(): from models.site import Site, Block Site.drop_table(fail_silently=True) Block.drop_table(fail_silently=True) from utils.cache import local_cache for k, v in local_cache.iteritems(): if not v: continue v.drop_table(fail_silently=True) from utils.cache import rds keys = rds.keys('c:*') if keys: rds.delete(*keys)
def check_block(sid, ip): if rds.get(config.BLOCK_PREFIX.format(sid=sid, ip=ip)): return True elif Block.select().where(Block.sid == sid, Block.ip == ip).first(): rds.set(config.BLOCK_PREFIX.format(sid=sid, ip=ip), 1) return True return False
def delete_block(site, id): block = Block.get(Block.id == id, Block.sid == site.id) rds.delete(config.BLOCK_PREFIX.format(sid=site.id, ip=block.ip)) site.blocks = Site.blocks - 1 site.save() del local_cache[site.token] return block.delete_instance()
def block(site, ip): site.blocks = Site.blocks + 1 site.save() del local_cache[site.token] result = Block.create(sid=site.id, ip=ip) rds.set(config.BLOCK_PREFIX.format(sid=site.id, ip=ip), 1) return result
def setup(): import tests import config for k in dir(config): value = getattr(tests, k, None) if not value: continue setattr(config, k, value) from models.site import Site, Block from query.site import create Site.create_table(fail_silently=True) Block.create_table(fail_silently=True) global site from tests.base import TEST_TOKEN site = create(TEST_TOKEN, 'test')
#!/usr/bin/python #coding:utf-8 import logging from models.site import Site, Block logger = logging.getLogger('peewee') logger.setLevel(logging.DEBUG) logger.addHandler(logging.StreamHandler()) Site.create_table(fail_silently=True) Block.create_table(fail_silently=True)
def get_blocks(site, total, page, num): return Block.select().where(Block.sid == site.id).order_by(Block.id.desc()).paginate(page, num)