示例#1
0
    def setUp(self):
        self.pg_web = pg_connect(SETTINGS['DATABASE_WEB_URL'])
        self.pg_data = pg_connect(SETTINGS['DATABASE_URL'])
        self.redis_data = redis.StrictRedis.from_url(SETTINGS['REDIS_URL'])
        self.redis_web = redis.StrictRedis.from_url(SETTINGS['REDIS_WEB_URL'])
        # turn on autocommit
        self.pg_data.autocommit = True
        self.pg_web.autocommit = True

        # always start with an empty click database
        cursor = self.pg_data.cursor()
        cursor.execute('DELETE FROM clicks;')
        cursor.execute('DELETE FROM urls;')
        cursor.execute('DELETE FROM comments;')
        cursor.close()

        # give the users some generous balance
        cursor = self.pg_web.cursor()
        cursor.execute(
            "UPDATE users SET balance_paid=3000, balance_free=500, total_given=0"
        )

        # clear redis
        self.redis_web.flushdb()
        self.redis_data.flushdb()
示例#2
0
    def setUp(self):
        self.app = api.app.test_client()
        self.pg_web = pg_connect(SETTINGS['DATABASE_WEB_URL'])
        self.pg_data = pg_connect(SETTINGS['DATABASE_URL'])
        self.redis_data = redis.StrictRedis.from_url(SETTINGS['REDIS_URL'])
        # turn on autocommit
        self.pg_data.autocommit = True
        self.pg_web.autocommit = True

        # always start with an empty click database
        cursor = self.pg_data.cursor()
        cursor.execute('DELETE FROM clicks;')
        cursor.execute('DELETE FROM urls;')
        cursor.execute('DELETE FROM comments;')
        cursor.close()

        # make sure the all test users start with 0 balance, no free credit
        cursor = self.pg_web.cursor()
        cursor.execute(
            "UPDATE users SET balance_paid=0, balance_free=100, total_given=0")
        cursor.execute("SELECT id FROM users WHERE uuid=%s",
                       ("3dd80d107941012f5e2c60c5470a09c8", ))
        result = cursor.fetchone()
        self.user_id = result[0]
        cursor.execute('DELETE FROM payments')

        # insert and process a valid click
        message = '{"uuid":"a2afb8a0-fc6f-11e1-b984-eff95004abc9", "user_uuid":"3dd80d107941012f5e2c60c5470a09c8", "button_uuid":"a4b16a40dff9012f5efd60c5470a09c8", "amount":25, "referrer_user_uuid":null, "referrer":"http://localhost:3000/thisisfrancis", "user_agent":"Mozilla/5.0 (Macintosh; Intel Mac OS X 10_7_4) AppleWebKit/537.1 (KHTML, like Gecko) Chrome/21.0.1180.89 Safari/537.1", "ip_address":"127.0.0.1", "created_at":"' + datetime.utcnow(
        ).isoformat() + '"}'
        processor.process_message(message)

        # clear redis
        self.redis_data.flushdb()
示例#3
0
    def setUp(self):
        self.pg_web = pg_connect(SETTINGS['DATABASE_WEB_URL'])
        self.pg_data = pg_connect(SETTINGS['DATABASE_URL'])
        self.redis_data = redis.StrictRedis.from_url(SETTINGS['REDIS_URL'])
        self.redis_web = redis.StrictRedis.from_url(SETTINGS['REDIS_WEB_URL'])
        # turn on autocommit
        self.pg_data.autocommit = True
        self.pg_web.autocommit = True

        # always start with an empty click database
        cursor = self.pg_data.cursor()
        cursor.execute('DELETE FROM clicks;')
        cursor.execute('DELETE FROM urls;')
        cursor.execute('DELETE FROM comments;')
        cursor.close()

        # make sure the all test users start with 0 balance
        cursor = self.pg_web.cursor()
        cursor.execute(
            "UPDATE users SET balance_paid=0, balance_free=100, total_given=0")

        # set up a revenue share on another button
        cursor.execute("SELECT id FROM users WHERE uuid=%s",
                       ("439bdb807941012f5e2d60c5470a09c8", ))
        result = cursor.fetchone()
        share_users = json.dumps([{'user': result[0], 'share_amount': 10}])
        cursor.execute("UPDATE buttons SET share_users=%s WHERE uuid=%s", (
            share_users,
            "92d1cdb0f60c012f5f3960c5470a09c8",
        ))

        # clear redis
        self.redis_web.flushdb()
        self.redis_data.flushdb()
示例#4
0
    def setUp(self):
        self.pg_web = pg_connect(SETTINGS['DATABASE_WEB_URL'])
        self.pg_data = pg_connect(SETTINGS['DATABASE_URL'])
        self.redis_data = redis.StrictRedis.from_url(SETTINGS['REDIS_URL'])

        # turn on autocommit
        self.pg_web.autocommit = True
        self.pg_data.autocommit = True

        # always start with an empty click database
        cursor = self.pg_data.cursor()
        cursor.execute('DELETE FROM clicks;')
        cursor.close()

        # make sure the test click users start with 0 balance
        cursor = self.pg_web.cursor()
        cursor.execute(
            "UPDATE users SET balance_paid=0,balance_free=100,total_given=0")

        # clear the redis queues
        self.redis_data.delete('QUEUE')
        self.redis_data.delete('QUEUE_PROCESSING')
示例#5
0
文件: scraper.py 项目: 25c/data25c
def rescrape_all():
  try:
    pg_data = pg_connect(SETTINGS['DATABASE_URL'])
    cursor = pg_data.cursor()
    cursor.execute("SELECT DISTINCT(referrer) FROM clicks")
    for row in cursor:
      enqueue_url(row[0])
  except:
    logger.exception('Unexpected exception re-enqueing referrer urls for scraping')
  finally:
    cursor.close()
    pg_data.commit()
    pg_data.close()
示例#6
0
文件: click.py 项目: 25c/data25c
# initialize logger
logging.basicConfig()
logger = logging.getLogger('click')
if SETTINGS['PYTHON_ENV'] == 'development' or SETTINGS['PYTHON_ENV'] == 'test':
    logger.setLevel(logging.DEBUG)
else:
    logger.setLevel(logging.INFO)
    handler = AirbrakeHandler(SETTINGS['AIRBRAKE_API_KEY'],
                              environment=SETTINGS['PYTHON_ENV'],
                              component_name='click',
                              node_name='data25c')
    handler.setLevel(logging.ERROR)
    logger.addHandler(handler)

# initialize postgres connections
pg_data = pg_connect(SETTINGS['DATABASE_URL'])
pg_web = pg_connect(SETTINGS['DATABASE_WEB_URL'])

# initialize redis connections
redis_data = redis.StrictRedis.from_url(SETTINGS['REDIS_URL'])
redis_web = redis.StrictRedis.from_url(SETTINGS['REDIS_WEB_URL'])


def validate_click(uuid, user_uuid, button_uuid, url, comment_uuid,
                   referrer_user_uuid):
    cursor = None
    try:
        pg_web.autocommit = True
        cursor = pg_web.cursor()

        # validate user uuid