Ejemplo n.º 1
0
    def test_passing_params_session(self):
        session = sixpack.Session('zack',
                                  params={'ip_address': '51.70.135.20'})
        self.assertEqual(session.ip_address, '51.70.135.20')

        params = {'ip_address': '51.70.155.11', 'user_agent': 'FireChromari'}
        session = sixpack.Session('hunting', params=params)
        self.assertEqual(session.ip_address, '51.70.155.11')
        self.assertEqual(session.user_agent, 'FireChromari')
Ejemplo n.º 2
0
    def test_settings_to_constructor(self):
        self.assertEqual(sixpack.SIXPACK_HOST, 'http://localhost:5000')

        session = sixpack.Session()
        self.assertEqual(session.host, 'http://localhost:5000')

        params = {'host': 'http://sixpack-ec2-01:8911'}
        session = sixpack.Session(options=params)
        self.assertEqual(session.host, 'http://sixpack-ec2-01:8911')
Ejemplo n.º 3
0
    def _get_session(self, user_agent=None, ip_address=None):
        session_kwargs = {
            'options': {'host': self.host, 'timeout': self.timeout},
            'params': {'ip_address': ip_address, 'user_agent': user_agent},
            'client_id': self.client_id,
        }

        return sixpack.Session(**session_kwargs)
Ejemplo n.º 4
0
    def test_should_return_ok_for_multiple_tests(self):
        session = sixpack.Session('runnerJose')
        session.participate('ok-ok', ['water', 'oil'])
        ret1 = session.convert('ok-ok')
        ret2 = session.convert('ok-ok')

        self.assertEqual(ret1['status'], 'ok')
        self.assertEqual(ret2['status'], 'ok')
Ejemplo n.º 5
0
    def test_should_return_ok_for_a_kpi(self):
        session = sixpack.Session('runnerOsvaldo')

        with patch('requests.get', new=new_participate):
            session.participate('with-kpi', ['water', 'oil'])

        with patch('requests.get', new=new_convert):
            ret = session.convert('with-kpi', kpi='my-shiny-kpi')

        self.assertEqual(ret['status'], 'ok')
Ejemplo n.º 6
0
def create_session():
    options = {
        'host': current_app.config['SIXPACK_HOST'],
        'timeout': current_app.config['SIXPACK_TIMEOUT']
    }
    params = {
        'user_agent': request.headers.get('User-Agent'),
        'ip_address': request.remote_addr
    }
    session_key = current_app.config['SIXPACK_SESSION_KEY']
    client_id = session.get(session_key, None)
    if client_id is None:
        client_id = str(sixpack.generate_client_id())
        setattr(g, session_key, client_id)
    return sixpack.Session(client_id=client_id, options=options, params=params)
Ejemplo n.º 7
0
    def create_session(self):
        options = {
            'host': self.app.config['SIXPACK_HOST'],
            'timeout': self.app.config['SIXPACK_TIMEOUT']
        }
        params = {
            'user_agent': request.headers.get('User-Agent'),
            'ip_address': request.remote_addr
        }

        client_id = request.cookies.get(self.app.config['SIXPACK_COOKIE_NAME'],
                                        None)
        if (client_id is None):
            client_id = sixpack.generate_client_id()
            setattr(g, self.app.config['SIXPACK_COOKIE_NAME'], client_id)

        return sixpack.Session(client_id=client_id,
                               options=options,
                               params=params)
Ejemplo n.º 8
0
 def test_should_return_error_for_a_traffic_fraction_off_the_charts(self):
     session = sixpack.Session('runnerOsvaldo')
     with self.assertRaises(ValueError):
         session.participate('subset-experiment', ['water', 'oil'],
                             traffic_fraction=5)
Ejemplo n.º 9
0
    def test_should_return_failed_for_sixpack_unavailable(self):
        session = sixpack.Session('runnerOsvaldo')

        with patch('requests.get', new=sixpack_unavailable):
            ret = session.participate('with-kpi', ['water', 'oil'])
            self.assertEqual(ret['status'], 'failed')
Ejemplo n.º 10
0
 def test_failure_on_bad_kpi_name_convert(self):
     session = sixpack.Session('zack')
     with self.assertRaises(ValueError):
         session.convert('omenar', kpi='*******')
Ejemplo n.º 11
0
 def test_failure_on_bad_exp_name_convert(self):
     session = sixpack.Session('zack')
     with self.assertRaises(ValueError):
         session.convert('(((((')
Ejemplo n.º 12
0
 def test_failure_on_bad_experiment_name(self):
     session = sixpack.Session('zack')
     with self.assertRaises(ValueError):
         session.participate('*********', ['1', '2'])
Ejemplo n.º 13
0
 def test_failure_on_uppercase_expt_name_convert(self):
     session = sixpack.Session('zack')
     with self.assertRaises(ValueError):
         session.convert('FooExperiment')
Ejemplo n.º 14
0
 def test_should_return_ok_for_a_traffic_fraction(self):
     session = sixpack.Session('supperUser')
     session.participate('my-subset-experiment', ['water', 'oil'],
                         traffic_fraction=0.2)
     ret = session.convert('my-subset-experiment')
     self.assertEqual(ret['status'], 'ok')
Ejemplo n.º 15
0
 def test_generate_uuid(self):
     session = sixpack.Session('xxx')
     resp = session.participate('exp-n', ['trolled', 'not-trolled'])
     self.assertIn(resp['alternative']['name'], ['trolled', 'not-trolled'])
Ejemplo n.º 16
0
 def test_failure_on_bad_alt_names(self):
     session = sixpack.Session('zack')
     with self.assertRaises(ValueError):
         session.participate('ipa', ['****', '1'])
Ejemplo n.º 17
0
 def test_not_passing_params_to_session(self):
     session = sixpack.Session('kitz')
     self.assertIsNone(session.ip_address)
     self.assertIsNone(session.user_agent)
Ejemplo n.º 18
0
 def test_failure_on_too_few_alts(self):
     session = sixpack.Session('zack')
     with self.assertRaises(ValueError):
         session.participate('run-dmc', [1])
Ejemplo n.º 19
0
    def test_client_id_on_constructor(self):
        session = sixpack.Session('zack111')
        self.assertEqual(session.client_id, 'zack111')

        session = sixpack.Session(client_id='zack111')
        self.assertEqual(session.client_id, 'zack111')
Ejemplo n.º 20
0
 def test_failure_on_uppercase_expt_name_participate(self):
     session = sixpack.Session('zack')
     with self.assertRaises(ValueError):
         session.participate('FooExperiment', ['1', '2'])