Exemplo n.º 1
0
def test_worker_factory():
    class Service(object):
        foo_proxy = rpc_proxy("foo_service")
        bar_proxy = rpc_proxy("bar_service")

    class OtherService(object):
        pass

    # simplest case, no overrides
    instance = worker_factory(Service)
    assert isinstance(instance, Service)
    assert isinstance(instance.foo_proxy, Mock)
    assert isinstance(instance.bar_proxy, Mock)

    # no injections to replace
    instance = worker_factory(OtherService)
    assert isinstance(instance, OtherService)

    # override specific injection
    bar_injection = object()
    instance = worker_factory(Service, bar_proxy=bar_injection)
    assert isinstance(instance, Service)
    assert isinstance(instance.foo_proxy, Mock)
    assert instance.bar_proxy is bar_injection

    # non-applicable injection
    with pytest.raises(DependencyNotFound):
        worker_factory(Service, nonexist=object())
Exemplo n.º 2
0
def test_worker_factory():
    class Service(object):
        foo_proxy = rpc_proxy("foo_service")
        bar_proxy = rpc_proxy("bar_service")

    class OtherService(object):
        pass

    # simplest case, no overrides
    instance = worker_factory(Service)
    assert isinstance(instance, Service)
    assert isinstance(instance.foo_proxy, Mock)
    assert isinstance(instance.bar_proxy, Mock)

    # no injections to replace
    instance = worker_factory(OtherService)
    assert isinstance(instance, OtherService)

    # override specific injection
    bar_injection = object()
    instance = worker_factory(Service, bar_proxy=bar_injection)
    assert isinstance(instance, Service)
    assert isinstance(instance.foo_proxy, Mock)
    assert instance.bar_proxy is bar_injection

    # non-applicable injection
    instance = worker_factory(Service, nonexist=object())
    assert isinstance(instance, Service)
    assert isinstance(instance.foo_proxy, Mock)
    assert isinstance(instance.bar_proxy, Mock)
    assert not hasattr(instance, "nonexist")
Exemplo n.º 3
0
def test_worker_factory():

    class Service(object):
        name = "service"
        foo_proxy = RpcProxy("foo_service")
        bar_proxy = RpcProxy("bar_service")

    class OtherService(object):
        pass

    # simplest case, no overrides
    instance = worker_factory(Service)
    assert isinstance(instance, Service)
    assert isinstance(instance.foo_proxy, Mock)
    assert isinstance(instance.bar_proxy, Mock)

    # no dependencies to replace
    instance = worker_factory(OtherService)
    assert isinstance(instance, OtherService)

    # override specific dependency
    bar_dependency = object()
    instance = worker_factory(Service, bar_proxy=bar_dependency)
    assert isinstance(instance, Service)
    assert isinstance(instance.foo_proxy, Mock)
    assert instance.bar_proxy is bar_dependency

    # non-applicable dependency
    with pytest.raises(ExtensionNotFound):
        worker_factory(Service, nonexist=object())
Exemplo n.º 4
0
def test_worker_factory():

    class Service(object):
        foo_proxy = rpc_proxy("foo_service")
        bar_proxy = rpc_proxy("bar_service")

    class OtherService(object):
        pass

    # simplest case, no overrides
    instance = worker_factory(Service)
    assert isinstance(instance, Service)
    assert isinstance(instance.foo_proxy, Mock)
    assert isinstance(instance.bar_proxy, Mock)

    # no injections to replace
    instance = worker_factory(OtherService)
    assert isinstance(instance, OtherService)

    # override specific injection
    bar_injection = object()
    instance = worker_factory(Service, bar_proxy=bar_injection)
    assert isinstance(instance, Service)
    assert isinstance(instance.foo_proxy, Mock)
    assert instance.bar_proxy is bar_injection

    # non-applicable injection
    instance = worker_factory(Service, nonexist=object())
    assert isinstance(instance, Service)
    assert isinstance(instance.foo_proxy, Mock)
    assert isinstance(instance.bar_proxy, Mock)
    assert not hasattr(instance, "nonexist")
Exemplo n.º 5
0
def test_worker_factory():
    class Service(object):
        name = "service"
        foo_proxy = RpcProxy("foo_service")
        bar_proxy = RpcProxy("bar_service")

    class OtherService(object):
        pass

    # simplest case, no overrides
    instance = worker_factory(Service)
    assert isinstance(instance, Service)
    assert isinstance(instance.foo_proxy, Mock)
    assert isinstance(instance.bar_proxy, Mock)

    # no dependencies to replace
    instance = worker_factory(OtherService)
    assert isinstance(instance, OtherService)

    # override specific dependency
    bar_dependency = object()
    instance = worker_factory(Service, bar_proxy=bar_dependency)
    assert isinstance(instance, Service)
    assert isinstance(instance.foo_proxy, Mock)
    assert instance.bar_proxy is bar_dependency

    # non-applicable dependency
    with pytest.raises(ExtensionNotFound):
        worker_factory(Service, nonexist=object())
Exemplo n.º 6
0
def test_receive_new_publication(entrypoint_waiter_mock, entrypoint_hook_mock):
    service4 = worker_factory(Service4)
    consumer = worker_factory(ConsumerService)

    payload = '776223'
    with entrypoint_hook_mock(service4, 'dispatch_publication') as dispatch:
        with entrypoint_waiter_mock(consumer, 'receive_new_publication'):
            dispatch(payload)
Exemplo n.º 7
0
def test_get_history():
    service4 = worker_factory(Service4)

    # Mock redis attribute to storage publications
    mlist = sample(range(100000, 999999), 100)
    setattr(service4._redis, 'published_numbers', mlist)

    # Mock redis llen method
    def llen_mock(key):
        mlist = getattr(service4._redis, key)
        return len(mlist)

    service4._redis.llen.side_effect = llen_mock

    # Mock redis lrange method to get published publications
    def lrange_mock(key, start, end):
        mlist = getattr(service4._redis, key)
        if end == -1:
            return mlist[start:]
        return mlist[start:end]

    service4._redis.lrange.side_effect = lrange_mock
    history = service4._redis.lrange('published_numbers', 0, -1)
    mlistlen = service4._redis.llen('published_numbers')
    assert mlistlen == len(history)
    assert isinstance(history, list)
def test_get_approvals_and_call_changes_detector(*args):
    service = worker_factory(SyncerApprovalsLoaderService)

    service.load_page(page_number=1)

    (service.syncer_changes_detector_service.detect_changes.
     call_async.called_once_with(APPROVAL_FXT["AffiliateOffer"]))
Exemplo n.º 9
0
def test_search_entity(database):
    service = worker_factory(ReferentialService, database=database)
    database.entities.insert_one({
        'id':
        '0',
        'common_name':
        'The Hangover',
        'provider':
        'provider',
        'type':
        'movie',
        'informations': {
            'starring': 'Bradley Cooper'
        },
        'internationalization': [{
            'language': 'fr',
            'translation': 'la gueule de bois'
        }],
        'allowed_users': ['admin']
    })
    database.entities.create_index([('common_name', TEXT)],
                                   default_language='english')

    res = bson.json_util.loads(
        service.search_entity('hangover', 'admin', 'movie', 'provider'))
    assert len(res) == 1
    assert res[0]['common_name'] == 'The Hangover'

    res = bson.json_util.loads(
        service.search_entity('unknown', 'admin', 'movie', 'provider'))
    assert len(res) == 0

    res = bson.json_util.loads(service.search_entity('hangover', 'admin'))
    assert len(res) == 1
    assert res[0]['common_name'] == 'The Hangover'
Exemplo n.º 10
0
def test_get_entity_picture(database):
    service = worker_factory(ReferentialService, database=database)
    database.entities.insert_one({
        'id': '0',
        'common_name': 'The Hangover',
        'provider': 'me',
        'type': 'movie',
        'informations': {
            'starring': 'Bradley Cooper'
        },
        'allowed_users': ['admin']
    })
    database.entities.create_index('id')
    database.subscriptions.insert_one({
        'user': '******',
        'subscription': {
            'pictures': ['mycontext']
        }
    })

    pic = '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'
    fs = gridfs.GridFS(database)

    filename = hashlib.sha1(''.join(['bitmap', '0', 'mycontext',
                                     'myformat']).encode('utf-8')).hexdigest()
    with tempfile.TemporaryFile() as f:
        f.write(binascii.hexlify(base64.b64decode(pic)))
        f.flush()
        f.seek(0)
        fs.put(f, filename=filename)

    entity_pic = service.get_entity_picture('0', 'mycontext', 'myformat',
                                            'admin')

    assert entity_pic == pic
Exemplo n.º 11
0
def test_get_events_by_name(database):
    service = worker_factory(ReferentialService, database=database)
    database.events.create_index([('common_name', TEXT)],
                                 default_language='english')
    database.events.insert_one({
        'id':
        '0',
        'date':
        datetime.datetime.now(),
        'provider':
        'provider',
        'type':
        'type',
        'common_name':
        'Name',
        'content':
        'New Movie',
        'entities': [{
            'common_name': 'Bradley',
            'id': 'b1'
        }],
        'allowed_users': ['admin']
    })
    res = bson.json_util.loads(service.get_events_by_name('name', 'admin'))
    assert len(res) == 1
    assert res[0]['id'] == '0'
Exemplo n.º 12
0
def test_get_events_between_dates(database):
    service = worker_factory(ReferentialService, database=database)
    database.events.insert_one({
        'id':
        '0',
        'date':
        datetime.datetime(2018, 5, 7, 14, 30),
        'provider':
        'provider',
        'type':
        'type',
        'common_name':
        'Name',
        'content':
        'New Movie',
        'entities': [{
            'common_name': 'Bradley',
            'id': 'b1'
        }],
        'allowed_users': ['admin']
    })
    events = bson.json_util.loads(
        service.get_events_between_dates('2018-05-07', '2018-05-15', 'admin'))
    assert len(events) == 1
    assert events[0]['id'] == '0'

    events = bson.json_util.loads(
        service.get_events_between_dates('2018-05-05', '2018-05-07', 'admin'))
    assert len(events) == 0
Exemplo n.º 13
0
def test_update_all_ru1(database):
    service = worker_factory(OptaCollectorService, database=database)
    service.opta.get_rugby_calendar.side_effect = lambda season_id, competition_id: [{
        'competition_id': competition_id,
        'season_id': season_id,
        'date': datetime.datetime.now(),
        'home_id': 'h_id',
        'away_id': 'a_id',
        'id': 'g_id',
        'fingerprint': 'calendar'
    }]

    service.database.ru1.insert_one({
        'competition_id': 'c_id',
        'season_id': 's_id',
        'date': datetime.datetime.now(),
        'home_id': 'h_id',
        'away_id': 'a_id',
        'id': 'g_id',
        'fingerprint': 'calendar'})

    service.update_all_f1()

    assert service.database.ru1.find_one({'id': 'g_id'})['season_id'] == 's_id'
    assert service.database.ru1.find_one({'id': 'g_id'})['competition_id'] == 'c_id'
Exemplo n.º 14
0
def test_unack_ru7(database):
    service = worker_factory(OptaCollectorService, database=database)
    service.database.ru7.insert_one({'id': 'g_id', 'checksum': 'toto'})

    service.unack_ru7('g_id')

    assert service.database.ru7.find_one({'id': 'g_id'}) is None
Exemplo n.º 15
0
def test_set_log_level():
    service = worker_factory(MyService)
    logger = logging.getLogger("foo.bar")
    logger.setLevel(logging.ERROR)
    service.set_log_level("foo.bar", logging.DEBUG)
    logger = logging.getLogger("foo.bar")
    assert logger.level == logging.DEBUG
Exemplo n.º 16
0
def test_dispatches_event_if_was_none(*args):
    service = worker_factory(SyncerChangesDetectorService)

    approval = {"id": 1, "approval_status": "approved"}
    service.detect_changes(approval)

    service.dispatch.called_once_with(approval)
Exemplo n.º 17
0
def test_does_not_dispatch_event_as_already_approved(*args):
    service = worker_factory(SyncerChangesDetectorService)

    approval = {"id": 1, "approval_status": "approved"}
    service.detect_changes(approval)

    assert not service.dispatch.called
Exemplo n.º 18
0
    def test_send_email(self):
        service = worker_factory(EmailSender)

        payload = {
            'client': {
                'name': 'John',
                'email': '*****@*****.**'
            },
            'payee': {
                'name': 'Ben',
                'email': '*****@*****.**'
            },
            'payment': {
                'amount': 198,
                'currency': "GBP"
            }
        }

        fake_request = MagicMock()
        fake_request.status_code = 200

        with patch('email_sender_service.EmailSender.create_email') as create_email:
            with patch('requests.post') as fake_post:
                create_email.return_value = 'EMAIL TESTING'
                fake_post.return_value = fake_request

                assert service.send_email(payload) == 200
Exemplo n.º 19
0
    def test_parse_service(self, add_posts_into_db):
        service = worker_factory(Service)

        result = service.parse()

        self.assertTrue(add_posts_into_db.called)
        self.assertEqual(result, {'added': 10})
Exemplo n.º 20
0
def test_match_storage(session):
    service = worker_factory(MatchService, rep=session)

    # check player start matches (after fixture)
    assert len(service.get_player_matches(USER("A"))) == 1
    assert len(service.get_player_matches(USER("B"))) == 1
    assert len(service.get_player_matches(USER("C"))) == 0

    # save new match
    assert service.end_match(USER("A"), USER("C"), SCORE_LOW, SCORE_HIGH)

    # check new match is added
    assert len(service.get_player_matches(USER("A"))) == 2
    assert len(service.get_player_matches(USER("B"))) == 1
    assert len(service.get_player_matches(USER("C"))) == 1

    # check if 2 wins against 1, then result is 2
    assert service.end_match(USER("D"), USER("E"), SCORE_LOW, SCORE_HIGH)
    assert service.get_player_matches(USER("D"))[0]["result"] == 2

    # check if 1 wins against 2, then result is 1
    assert service.end_match(USER("F"), USER("G"), SCORE_HIGH, SCORE_LOW)
    assert service.get_player_matches(USER("F"))[0]["result"] == 1

    # check if draw, then result is 0
    assert service.end_match(USER("H"), USER("I"), SCORE_HIGH, SCORE_HIGH)
    assert service.get_player_matches(USER("H"))[0]["result"] == 0

    # check all matches have been added
    assert len(service.get_all_matches()) == 5
Exemplo n.º 21
0
def test_get_index() -> None:
    """Tests the index page."""
    service = worker_factory(CapabilitiesService)
    result = service.send_index(MOCKED_API_SPEC)
    assert result == {
        'status': 'success',
        'code': 200,
        'data': {
            'api_version':
            '1.0.0-rc.2',
            'backend_version':
            '1.0.0',
            'title':
            'EODC API',
            'description':
            'The EODC API provides access to the EODC services and data, as well as access to the openEO'
            ' endpoints.',
            'endpoints': [{
                'path': '/',
                'methods': ['GET']
            }],
            'stac_version':
            '0.6.2',
            'id':
            'eodc-openeo-backend',
            'production':
            True,
            'links': []
        }
    }
Exemplo n.º 22
0
def test_match_progress(session):
    service = worker_factory(MatchService, rep=session)

    # check codes are different in different conditions
    start_time = time.time()
    code_a = service.generate_match_code(USER("A"), USER("B"), start_time)
    code_b = service.generate_match_code(USER("A"), USER("C"), start_time)
    code_c = service.generate_match_code(USER("B"), USER("C"), start_time)

    assert code_a != code_b
    assert code_a != code_c
    assert code_b != code_c

    time.sleep(0.1)
    code_d = service.generate_match_code(USER("A"), USER("B"), time.time())

    assert code_a != code_d

    # simulate guess
    code = service.generate_match_code(USER("A"), USER("B"), time.time())

    flags_names, flags_urls = service.get_flags(code)

    assert service.guess_flag(code, "Wrong Country") is None

    for i in range(20):
        flag_url = service.guess_flag(code, flags_names[i])
        assert flag_url == flags_urls[i]
Exemplo n.º 23
0
def tests_get_count_and_call_approvals_loader_service(*args):
    service = worker_factory(SyncerService)

    service.run()

    assert (service.syncer_approvals_loader_service.load_page.call_async.
            call_count) == 1
Exemplo n.º 24
0
    def test_create_email(self):
        service = worker_factory(EmailSender)

        payload = {
            'client': {
                'name': 'John',
                'email': '*****@*****.**'
            },
            'payee': {
                'name': 'Ben'
            },
            'payment': {
                'amount': 198,
                'currency': "GBP"
            }
        }
        expected_email = "Dear Ben,\n\n\
You have received a payment of 198 GBP from John ([email protected]).\n\
\n\
Yours,\n\
student.com\n"

        actual_email = service.create_email(payload)

        assert actual_email == expected_email
Exemplo n.º 25
0
def test_get_file_formats() -> None:
    """Tests the description of  available file formats."""
    service = worker_factory(CapabilitiesService)
    result = service.get_file_formats(MOCKED_API_SPEC)
    assert result == {
        'status': 'success',
        'code': 200,
        'data': {
            'output': {
                'GTiff': {
                    'title': 'GeoTiff',
                    'gis_data_types': ['raster'],
                    'parameters': {}
                },
                'png': {
                    'title': 'PNG',
                    'gis_data_types': ['raster'],
                    'parameters': {}
                },
                'jpeg': {
                    'title': 'JPEG',
                    'gis_data_types': ['raster'],
                    'parameters': {}
                }
            },
            'input': {
                'GTiff': {
                    'title': 'GeoTiff',
                    'gis_data_types': ['raster'],
                    'parameters': {}
                }
            }
        }
    }
Exemplo n.º 26
0
    def test_fetch_scale_config(self):
        fake_provider = mock.MagicMock(DockerClient)
        fake_provider.containers.run.return_value.logs.return_value = b'{}'

        service = worker_factory(ScalerDocker, docker=fake_provider)  # type: ScalerDocker
        service.fetch_image_config('nginx')
        fake_provider.containers.run.assert_called_once_with('nginx', 'scale_info', remove=False, detach=True)
Exemplo n.º 27
0
def test_get_udfs() -> None:
    """Tests the description of available UDF runtime."""
    service = worker_factory(CapabilitiesService)
    result = service.get_udfs(MOCKED_API_SPEC)
    assert result == {
        'status':
        'success',
        'code':
        200,
        'data': [{
            'default': '3.6',
            'name': 'Python',
            'versions': {
                '3.6': {
                    'libraries': {
                        'numpy': {
                            'links': {
                                'href': 'https://docs.scipy.org/doc/',
                                'rel': 'about'
                            },
                            'version': '1.18.1'
                        }
                    }
                }
            }
        }]
    }
Exemplo n.º 28
0
def test_get_transformation(database):
    service = worker_factory(MetadataService, database=database)
    result = bson.json_util.loads(service.get_transformation('0'))
    assert not result

    database.transformations.insert_one({
        'depends_on':
        None,
        'id':
        '0',
        'materialized':
        False,
        'function_name':
        'my_function',
        'function':
        'CREATE FUNCTION my_function (data DOUBLE) RETURN TABLE (result DOUBLE) LANGUAGE PYTHON{}',
        'target_table':
        None,
        'function_only':
        True,
        'trigger_tables':
        None,
        'type':
        'transform',
        'input':
        None,
        'creation_date':
        datetime.datetime.utcnow(),
        'process_date':
        None
    })
    result = bson.json_util.loads(service.get_transformation('0'))
    assert result['id'] == '0'
Exemplo n.º 29
0
def test_handle_event_calls_requests_post_with_correct_data(mock_requests_post):

    mockresponse = Mock()
    mock_requests_post.return_value = mockresponse

    service = worker_factory(SendsMail)

    mock_payload = {
        'client': { 'name': 'mock_name', 'email': 'mock_email' },
        'payee': { 'name': 'mock_name',  'email': 'mock_email' },
        'payment': { 'amount': 'mock_amount', 'currency': 'mock_currency' }
    }

    service.handle_event(mock_payload)

    requests.post.assert_called_once_with(
        DOMAIN,
        auth = ('api', API_KEY),
        data = {
            "from": EMAIL,
            "to": EMAIL,
            "subject": "Payment received",
            "text": ("""
                    Dear mock_name,

                    You have received a payment of mock_amount mock_currency from mock_name (mock_email).

                    Yours,

                    Student.com
                    """)})
Exemplo n.º 30
0
def test_greet_with_mockcache():

    fake_cache = mockcache.Client()
    hello_svc = worker_factory(HelloWorld, cache=fake_cache)

    assert hello_svc.greet("Matt") == "Hello Matt!"
    assert fake_cache.get("Matt") == "Hello Matt!"
Exemplo n.º 31
0
    def test_mail_service_unit(self):
        mail_service = worker_factory(MailService)
        payload = self._get_payload()

        assert mail_service.on_payment_received(payload)

        del payload['payee']
        assert mail_service.on_payment_received(payload) == False
Exemplo n.º 32
0
def scores_service_with_players():
    players = [
        mock.MagicMock(name='player2', score=10),
        mock.MagicMock(name='player1', score=20)]
    service = worker_factory(ScoreService)
    service.player_rpc.get_players.side_effect = lambda: players
    service.player_rpc.get_player.side_effect = lambda p: players[p - 1]
    return service
Exemplo n.º 33
0
def test_greet():

    hello_svc = worker_factory(HelloWorld)

    hello_svc.cache.get.return_value = None

    assert hello_svc.greet("Matt") == "Hello Matt!"
    assert hello_svc.cache.get.call_args_list == [call("Matt")]
Exemplo n.º 34
0
def test_service(session):

    # create instance, providing the test database session
    service = worker_factory(Service, db=session)

    # verify ``save`` logic by querying the test database
    service.save("helloworld")
    assert session.query(Result.value).all() == [("helloworld",)]
Exemplo n.º 35
0
def http_ep():
    sample_settings = {
        'serverip': '0.0.0.0',
        'notify': False,
        'sendpic': True
    }
    service = worker_factory(HttpEntrypointService)
    service.storage_rpc.get_all = mock.Mock(return_value=sample_settings)
    return service
Exemplo n.º 36
0
def test_create_pokemon():
    service = worker_factory(PokemonService)
    service.create_pokemon(1, 'Bulbasaur')

    assert service.session.add.call_count == 1

    created_pokemon = service.session.add.call_args[0][0]
    assert created_pokemon.user_id == 1
    assert created_pokemon.pokemon_name == 'Bulbasaur'
Exemplo n.º 37
0
def test_conversion_service():
    # create worker with mock dependencies
    service = worker_factory(ConversionService)

    # add side effects to the mock proxy to the "maths" service
    service.maths_rpc.multiply.side_effect = lambda x, y: x * y
    service.maths_rpc.divide.side_effect = lambda x, y: x / y

    # test inches_to_cm business logic
    assert service.inches_to_cm(300) == 762
    service.maths_rpc.multiply.assert_called_once_with(300, 2.54)

    # test cms_to_inches business logic
    assert service.cms_to_inches(762) == 300
    service.maths_rpc.divide.assert_called_once_with(762, 2.54)
Exemplo n.º 38
0
def test_conversion_service():
    # create instance
    # dependencies are replaced with mocks unless otherwise given - see
    # :class:`nameko.testing.services.worker_factory`
    service = worker_factory(ConversionService)

    # replace "math" service
    service.math.multiply.side_effect = lambda x, y: x * y
    service.math.divide.side_effect = lambda x, y: x / y

    # test inches_to_cm business logic
    assert service.inches_to_cm(300) == 762
    service.math.multiply.assert_called_once_with(300, 2.54)

    # test cms_to_inches business logic
    assert service.cms_to_inches(762) == 300
    service.math.divide.assert_called_once_with(762, 2.54)
Exemplo n.º 39
0
def service(session):
    return worker_factory(PokemonService, session=session)
Exemplo n.º 40
0
 def test_will_send_valid_payload(self):
     test_service = worker_factory(Mailer)
     assert test_service.handle_event(self.valid_payload())["success"]
Exemplo n.º 41
0
 def test_will_not_send_invalid_payload(self):
     test_service = worker_factory(Mailer)
     results = test_service.handle_event(self.invalid_payload())
     assert results["success"] == False
     assert len(results["errors"]) == 1
     assert results["errors"][0] == "Invalid Payload"
Exemplo n.º 42
0
def test_empty_leaderboard():
    service = worker_factory(ScoreService)
    assert service.leaderboard() == []
Exemplo n.º 43
0
def service(session):
    return worker_factory(PlayersService, session=session)
def test_case():
    assemble_svc = worker_factory(AssembleService)
    ped_content = '#familyID\tsampleID\n15052\t15052-1-1A\n'
    assemble_svc.case('cust003', '15052', 'exomes', ped_content)
    expected_file = ANALYSIS_ROOT.joinpath("cust003/15052/exomes/15052/"
                                           "15052_pedigree.txt")