python类PropertyMock()的实例源码

test_node.py 文件源码 项目:crankycoin 作者: cranklin 项目源码 文件源码 阅读 31 收藏 0 点赞 0 评论 0
def test_request_block_whenIndexIsLatest_thenRequestsLatestBlockFromNode(self):
        mock_response = Mock()
        mock_response.status_code = 200
        mock_response.json.return_value = '{"nonce": 12345, "index": 35, "transactions": [], "timestamp": 1234567890, "current_hash": "current_hash", "previous_hash": "previous_hash"}'

        with patch.object(FullNode, '__init__', return_value=None) as patched_init, \
                patch("crankycoin.node.Block.current_hash", new_callable=PropertyMock) as patched_block_current_hash, \
                patch("crankycoin.requests.get", return_value=mock_response) as patched_requests:
            patched_block_current_hash.return_value = "current_hash"
            node = FullNode("127.0.0.1", "reward_address")

            block = node.request_block("127.0.0.2", "30013", "latest")

            self.assertIsNotNone(block)
            self.assertEqual(block.index, 35)
            self.assertEqual(block.transactions, [])
            self.assertEqual(block.previous_hash, "previous_hash")
            self.assertEqual(block.current_hash, "current_hash")
            self.assertEqual(block.timestamp, 1234567890)
            self.assertEqual(block.nonce, 12345)
            patched_requests.assert_called_once_with('http://127.0.0.2:30013/block/latest')
test_node.py 文件源码 项目:crankycoin 作者: cranklin 项目源码 文件源码 阅读 37 收藏 0 点赞 0 评论 0
def test_request_block_whenIndexIsNumeric_thenRequestsCorrectBlockFromNode(self):
        mock_response = Mock()
        mock_response.status_code = 200
        mock_response.json.return_value = '{"nonce": 12345, "index": 29, "transactions": [], "timestamp": 1234567890, "current_hash": "current_hash", "previous_hash": "previous_hash"}'

        with patch.object(FullNode, '__init__', return_value=None) as patched_init, \
                patch("crankycoin.node.Block.current_hash", new_callable=PropertyMock) as patched_block_current_hash, \
                patch("crankycoin.requests.get", return_value=mock_response) as patched_requests:
            patched_block_current_hash.return_value = "current_hash"
            node = FullNode("127.0.0.1", "reward_address")

            block = node.request_block("127.0.0.2", "30013", 29)

            self.assertIsNotNone(block)
            self.assertEqual(block.index, 29)
            self.assertEqual(block.transactions, [])
            self.assertEqual(block.previous_hash, "previous_hash")
            self.assertEqual(block.current_hash, "current_hash")
            self.assertEqual(block.timestamp, 1234567890)
            self.assertEqual(block.nonce, 12345)
            patched_requests.assert_called_once_with('http://127.0.0.2:30013/block/29')
test_slot.py 文件源码 项目:pg2kinesis 作者: handshake 项目源码 文件源码 阅读 28 收藏 0 点赞 0 评论 0
def test_delete_slot(slot):
    with patch.object(psycopg2.ProgrammingError, 'pgcode',
                      new_callable=PropertyMock,
                      return_value=psycopg2.errorcodes.UNDEFINED_OBJECT):
        pe = psycopg2.ProgrammingError()
        slot._repl_cursor.drop_replication_slot = Mock(side_effect=pe)
        slot.delete_slot()
    slot._repl_cursor.drop_replication_slot.assert_called_with('pg2kinesis')

    with patch.object(psycopg2.ProgrammingError, 'pgcode',
                      new_callable=PropertyMock,
                      return_value=-1):
        pe = psycopg2.ProgrammingError()
        slot._repl_cursor.create_replication_slot = Mock(side_effect=pe)
        with pytest.raises(psycopg2.ProgrammingError) as e_info:
            slot.delete_slot()
            slot._repl_cursor.drop_replication_slot.assert_called_with('pg2kinesis')

            assert e_info.value.pgcode == -1

    slot._repl_cursor.create_replication_slot = Mock(side_effect=Exception)
    with pytest.raises(Exception):
        slot.delete_slot()
        slot._repl_cursor.drop_replication_slot.assert_called_with('pg2kinesis')
test_rackspace_uploader.py 文件源码 项目:FRG-Crowdsourcing 作者: 97amarnathk 项目源码 文件源码 阅读 23 收藏 0 点赞 0 评论 0
def test_rackspace_uploader_lookup_url(self, mock1, mock2):
        """Test RACKSPACE UPLOADER lookup returns a valid link."""
        uri = 'https://rackspace.com'
        filename = 'test.jpg'
        with patch('pybossa.uploader.rackspace.pyrax.cloudfiles') as mycf:
            cdn_enabled_mock = PropertyMock(return_value=True)
            type(fake_container).cdn_enabled = cdn_enabled_mock
            mycf.get_container.return_value = fake_container

            u = RackspaceUploader()
            u.init_app(self.flask_app)
            res = u._lookup_url('rackspace', {'filename': filename,
                                              'container': 'user_3'})
            expected_url = "%s/%s" % (uri, filename)
            err_msg = "We should get the following URL: %s" % expected_url
            assert res == expected_url, err_msg
test_rackspace_uploader.py 文件源码 项目:FRG-Crowdsourcing 作者: 97amarnathk 项目源码 文件源码 阅读 23 收藏 0 点赞 0 评论 0
def test_rackspace_uploader_lookup_url_enable_cdn(self, mock1, mock2):
        """Test RACKSPACE UPLOADER lookup enables CDN for non enabled CDN."""
        filename = 'test.jpg'
        with patch('pybossa.uploader.rackspace.pyrax.cloudfiles') as mycf:
            cdn_enabled_mock = PropertyMock(return_value=False)
            type(fake_container).cdn_enabled = cdn_enabled_mock
            mycf.get_container.return_value = fake_container

            u = RackspaceUploader()
            u.init_app(self.flask_app)
            res = u._lookup_url('rackspace', {'filename': filename,
                                              'container': 'user_3'})
            url = 'https://rackspace.com/test.jpg'
            err_msg = "We should get the %s but we got %s " % (url, res)
            assert res == url, err_msg
            calls = [call.make_public()]
            fake_container.assert_has_calls(calls, any_order=True)
test_file.py 文件源码 项目:osfclient 作者: osfclient 项目源码 文件源码 阅读 32 收藏 0 点赞 0 评论 0
def test_create_existing_folder_exist_ok():
    folder = Folder({})
    new_folder_url = ('https://files.osf.io/v1/resources/9zpcy/providers/' +
                      'osfstorage/foo123/?kind=folder')
    folder._new_folder_url = new_folder_url
    folder._put = MagicMock(return_value=FakeResponse(409, None))

    with patch.object(Folder, 'folders',
                      new_callable=PropertyMock) as mock_folder:
        mock_folder.return_value = [MockFolder('foobar'), MockFolder('fudge')]
        existing_folder = folder.create_folder('foobar', exist_ok=True)

    assert existing_folder.name == 'foobar'

    folder._put.assert_called_once_with(new_folder_url,
                                        params={'name': 'foobar'})
test_config_parser.py 文件源码 项目:hdlcc 作者: suoto 项目源码 文件源码 阅读 23 收藏 0 点赞 0 评论 0
def test():
            # We'll add no project file, so the only sources that should
            # be fond are VUnit's files
            it.assertIn('vunit', sys.modules)
            project_filename = p.join(TEST_CONFIG_PARSER_SUPPORT_PATH,
                                      'builder_only_project.prj')
            with mock.patch('hdlcc.builders.MSim.file_types',
                            new_callable=mock.PropertyMock,
                            return_value=('vhdl', )):
                parser = ConfigParser(project_filename)
                sources = parser.getSources()

            vunit_files = 0
            for source in sources:
                if 'vunit' in source.filename.lower():
                    vunit_files += 1

            it.assertEqual(len(sources), vunit_files,
                           "We should only find VUnit files")

            # Check that we find no verilog or systemverilog files
            for filetype in ('verilog', 'systemverilog'):
                it.assertNotIn(filetype, [x.filetype for x in sources],
                               "We should only find VUnit VHDL files")
test_tag_tt4.py 文件源码 项目:nfcpy 作者: nfcpy 项目源码 文件源码 阅读 22 收藏 0 点赞 0 评论 0
def test_init_T4A(mocker, rats_response, max_send, max_recv, result):
    clf = nfc.ContactlessFrontend()
    mocker.patch.object(clf, 'exchange', autospec=True)
    mocker.patch('nfc.ContactlessFrontend.max_send_data_size',
                 new_callable=mock.PropertyMock).return_value = max_send
    mocker.patch('nfc.ContactlessFrontend.max_recv_data_size',
                 new_callable=mock.PropertyMock).return_value = max_recv

    target = nfc.clf.RemoteTarget("106A")
    target.sens_res = HEX("4403")
    target.sel_res = HEX("20")
    target.sdd_res = HEX("04832F9A272D80")

    rats_command = 'E070' if max_recv < 256 else 'E080'
    clf.exchange.return_value = HEX(rats_response)
    tag = nfc.tag.activate(clf, target)
    clf.exchange.assert_called_once_with(HEX(rats_command), 0.03)
    assert isinstance(tag, nfc.tag.tt4.Type4Tag)
    assert str(tag) == result
test_tag_tt4.py 文件源码 项目:nfcpy 作者: nfcpy 项目源码 文件源码 阅读 22 收藏 0 点赞 0 评论 0
def test_init_T4B(mocker, sensb_res, max_send, max_recv, result):
    clf = nfc.ContactlessFrontend()
    mocker.patch.object(clf, 'exchange', autospec=True)
    mocker.patch('nfc.ContactlessFrontend.max_send_data_size',
                 new_callable=mock.PropertyMock).return_value = max_send
    mocker.patch('nfc.ContactlessFrontend.max_recv_data_size',
                 new_callable=mock.PropertyMock).return_value = max_recv

    target = nfc.clf.RemoteTarget("106B")
    target.sensb_res = HEX(sensb_res)

    attrib_cmd = '1D30702A1C' + ('00070100' if max_recv < 256 else '00080100')
    clf.exchange.return_value = HEX('00')
    tag = nfc.tag.activate(clf, target)
    clf.exchange.assert_called_once_with(HEX(attrib_cmd), 0.03)
    assert isinstance(tag, nfc.tag.tt4.Type4Tag)
    assert str(tag) == result
test_l3_ovn.py 文件源码 项目:networking-ovn 作者: netgroup-polito 项目源码 文件源码 阅读 23 收藏 0 点赞 0 评论 0
def setUp(self):
        plugin = 'neutron.tests.unit.extensions.test_l3.TestNoL3NatPlugin'
        l3_plugin = ('networking_ovn.l3.l3_ovn.OVNL3RouterPlugin')
        service_plugins = {'l3_plugin_name': l3_plugin}
        # For these tests we need to enable overlapping ips
        cfg.CONF.set_default('allow_overlapping_ips', True)
        cfg.CONF.set_default('max_routes', 3)
        ext_mgr = test_extraroute.ExtraRouteTestExtensionManager()
        super(test_l3.L3BaseForIntTests, self).setUp(
            plugin=plugin, ext_mgr=ext_mgr,
            service_plugins=service_plugins)
        patcher = mock.patch(
            'networking_ovn.l3.l3_ovn.OVNL3RouterPlugin._ovn',
            new_callable=mock.PropertyMock,
            return_value=fakes.FakeOvsdbNbOvnIdl())
        patcher.start()
        self.setup_notification_driver()

    # TODO(rtheis): Skip the following test cases since they are for
    # L3 service plugins that support L3 agent RPC. These tests should
    # be refactored in neutron.
test_hotstore.py 文件源码 项目:edx-video-pipeline 作者: edx 项目源码 文件源码 阅读 27 收藏 0 点赞 0 评论 0
def setUp(self):
        video_proto = VideoProto()
        video_proto.veda_id = 'XXXXXXXX2014-V00TEST'
        self.upload_filepath = os.path.join(
            os.path.dirname(os.path.abspath(__file__)),
            'test_files',
            'OVTESTFILE_01.mp4'
        )

        with patch.object(Hotstore, '_READ_AUTH', PropertyMock(return_value=lambda: CONFIG_DATA)):
            self.hotstore = Hotstore(
                video_object=video_proto,
                upload_filepath=self.upload_filepath,
                video_proto=video_proto
            )

        # do s3 mocking
        mock = mock_s3_deprecated()
        mock.start()
        conn = S3Connection()
        conn.create_bucket(CONFIG_DATA['veda_s3_hotstore_bucket'])
        self.addCleanup(mock.stop)
test_blobxfer_operations_upload.py 文件源码 项目:blobxfer 作者: Azure 项目源码 文件源码 阅读 24 收藏 0 点赞 0 评论 0
def test_worker_thread_transfer():
    u = ops.Uploader(mock.MagicMock(), mock.MagicMock(), mock.MagicMock())
    u._transfer_queue.put(
        (mock.MagicMock, mock.MagicMock, mock.MagicMock, mock.MagicMock)
    )
    u._transfer_queue.put(
        (mock.MagicMock, mock.MagicMock, mock.MagicMock, mock.MagicMock)
    )
    u._process_transfer = mock.MagicMock()
    u._process_transfer.side_effect = [None, Exception()]

    with mock.patch(
            'blobxfer.operations.upload.Uploader.termination_check',
            new_callable=mock.PropertyMock) as patched_tc:
        patched_tc.side_effect = [False, False, True]
        u._worker_thread_transfer()
        assert u._process_transfer.call_count == 2
        assert len(u._exceptions) == 1
test_blobxfer_operations_upload.py 文件源码 项目:blobxfer 作者: Azure 项目源码 文件源码 阅读 27 收藏 0 点赞 0 评论 0
def test_worker_thread_upload(ts):
    u = ops.Uploader(mock.MagicMock(), mock.MagicMock(), mock.MagicMock())
    u._general_options.concurrency.transfer_threads = 1

    u._transfer_set = mock.MagicMock()
    u._transfer_set.__len__.side_effect = [5, 0, 0, 0]
    u._upload_queue.put(mock.MagicMock)
    u._upload_queue.put(mock.MagicMock)
    u._process_upload_descriptor = mock.MagicMock()
    u._process_upload_descriptor.side_effect = [None, Exception()]

    with mock.patch(
            'blobxfer.operations.upload.Uploader.termination_check',
            new_callable=mock.PropertyMock) as patched_tc:
        patched_tc.side_effect = [False, False, False, False, True]
        u._worker_thread_upload()
        assert u._process_upload_descriptor.call_count == 2
        assert len(u._exceptions) == 1
test_databricks_hook.py 文件源码 项目:incubator-airflow-old 作者: apache 项目源码 文件源码 阅读 28 收藏 0 点赞 0 评论 0
def test_submit_run(self, mock_requests):
        mock_requests.codes.ok = 200
        mock_requests.post.return_value.json.return_value = {'run_id': '1'}
        status_code_mock = mock.PropertyMock(return_value=200)
        type(mock_requests.post.return_value).status_code = status_code_mock
        json = {
          'notebook_task': NOTEBOOK_TASK,
          'new_cluster': NEW_CLUSTER
        }
        run_id = self.hook.submit_run(json)

        self.assertEquals(run_id, '1')
        mock_requests.post.assert_called_once_with(
            submit_run_endpoint(HOST),
            json={
                'notebook_task': NOTEBOOK_TASK,
                'new_cluster': NEW_CLUSTER,
            },
            auth=(LOGIN, PASSWORD),
            headers=USER_AGENT_HEADER,
            timeout=self.hook.timeout_seconds)
test_databricks_hook.py 文件源码 项目:incubator-airflow-old 作者: apache 项目源码 文件源码 阅读 63 收藏 0 点赞 0 评论 0
def test_get_run_state(self, mock_requests):
        mock_requests.codes.ok = 200
        mock_requests.get.return_value.json.return_value = GET_RUN_RESPONSE
        status_code_mock = mock.PropertyMock(return_value=200)
        type(mock_requests.get.return_value).status_code = status_code_mock

        run_state = self.hook.get_run_state(RUN_ID)

        self.assertEquals(run_state, RunState(
            LIFE_CYCLE_STATE,
            RESULT_STATE,
            STATE_MESSAGE))
        mock_requests.get.assert_called_once_with(
            get_run_endpoint(HOST),
            json={'run_id': RUN_ID},
            auth=(LOGIN, PASSWORD),
            headers=USER_AGENT_HEADER,
            timeout=self.hook.timeout_seconds)
test_lib_charm_openstack_trove.py 文件源码 项目:charm-trove 作者: openstack 项目源码 文件源码 阅读 27 收藏 0 点赞 0 评论 0
def test_setup_endpoint(self):
        self.patch_object(trove.TroveCharm, 'service_name',
                          new_callable=mock.PropertyMock)
        self.patch_object(trove.TroveCharm, 'region',
                          new_callable=mock.PropertyMock)
        self.patch_object(trove.TroveCharm, 'public_url',
                          new_callable=mock.PropertyMock)
        self.patch_object(trove.TroveCharm, 'internal_url',
                          new_callable=mock.PropertyMock)
        self.patch_object(trove.TroveCharm, 'admin_url',
                          new_callable=mock.PropertyMock)
        self.service_name.return_value = 'type1'
        self.region.return_value = 'region1'
        self.public_url.return_value = 'public_url'
        self.internal_url.return_value = 'internal_url'
        self.admin_url.return_value = 'admin_url'
        keystone = mock.MagicMock()
        trove.setup_endpoint(keystone)
        keystone.register_endpoints.assert_called_once_with(
            'trove', 'region1', 'public_url/v1.0/%(tenant_id)s',
            'internal_url/v1.0/%(tenant_id)s',
            'admin_url/v1.0/%(tenant_id)s')
android_test.py 文件源码 项目:clusterfuzz-tools 作者: google 项目源码 文件源码 阅读 27 收藏 0 点赞 0 评论 0
def test_write(self):
    """Tests write_content."""
    # name is a special attribute in mock.Mock. Therefore, it needs a special
    # way of mocking.
    tmp_file = mock.Mock()
    type(tmp_file).name = mock.PropertyMock(return_value='/tmp/file')

    tmp = mock.Mock()
    tmp.__enter__ = mock.Mock(return_value=tmp_file)
    tmp.__exit__ = mock.Mock(return_value=False)
    self.mock.NamedTemporaryFile.return_value = tmp

    android.write_content('/test.html', 'content')

    self.mock.NamedTemporaryFile.assert_called_once_with(delete=False)
    self.mock.adb.assert_called_once_with('push /tmp/file /test.html')
    self.mock.adb_shell.assert_called_once_with('chmod 0644 /test.html')
    self.mock.delete_if_exists.assert_called_once_with('/tmp/file')
    tmp_file.write.assert_called_once_with('content')
test_error.py 文件源码 项目:murano-pkg-check 作者: openstack 项目源码 文件源码 阅读 31 收藏 0 点赞 0 评论 0
def test_errors(self, m_error):
        errors = dict()
        register = error.Register(errors, prefix='PRE')
        report = error.Report(errors, prefix='PRE')
        register.F042(description='Fake error')
        self.assertRaises(ValueError, register.__getattr__,
                          code='F042')
        self.assertEqual({'PRE:F042': {'code': 'PRE:F042',
                                       'description': 'Fake error'}},
                         errors)
        yaml_obj = mock.MagicMock(__yaml_meta__=mock.Mock(line=1,
                                                          column=1))
        type(yaml_obj.__yaml_meta__).name = mock.PropertyMock(
            return_value='fake.yaml')
        yaml_obj.__yaml_meta__.get_snippet.return_value = 'fake_code'
        report.F042('It is an error!', yaml_obj)
        m_error.assert_called_once_with(
            code='PRE:F042',
            column=2,
            line=2,
            filename='fake.yaml',
            message='It is an error!',
            source='fake_code')
        self.assertRaises(ValueError, report.__getattr__,
                          code='FAKE')
test_lib_charm_openstack_manila.py 文件源码 项目:charm-manila 作者: openstack 项目源码 文件源码 阅读 24 收藏 0 点赞 0 评论 0
def test_url_endpoints_creation(self):
        # Tests that the endpoint functions call through to the baseclass
        self.patch_object(manila.charms_openstack.charm.OpenStackCharm,
                          'public_url', new_callable=mock.PropertyMock)
        self.patch_object(manila.charms_openstack.charm.OpenStackCharm,
                          'internal_url', new_callable=mock.PropertyMock)
        self.patch_object(manila.charms_openstack.charm.OpenStackCharm,
                          'admin_url', new_callable=mock.PropertyMock)
        self.public_url.return_value = 'p1'
        self.internal_url.return_value = 'i1'
        self.admin_url.return_value = 'a1'
        c = self._patch_config_and_charm({})
        self.assertEqual(c.public_url, 'p1/v1/%(tenant_id)s')
        self.assertEqual(c.internal_url, 'i1/v1/%(tenant_id)s')
        self.assertEqual(c.admin_url, 'a1/v1/%(tenant_id)s')
        self.assertEqual(c.public_url_v2, 'p1/v2/%(tenant_id)s')
        self.assertEqual(c.internal_url_v2, 'i1/v2/%(tenant_id)s')
        self.assertEqual(c.admin_url_v2, 'a1/v2/%(tenant_id)s')
test_tasks.py 文件源码 项目:inspire-crawler 作者: inspirehep 项目源码 文件源码 阅读 32 收藏 0 点赞 0 评论 0
def test_receivers_exception(app, db, sample_record_string):
    """Test receivers."""
    responses.add(
        responses.POST, "http://localhost:6800/schedule.json",
        body=json.dumps({"jobid": None, "status": "ok"}),
        status=200
    )

    mock_record = MagicMock()
    prop_mock = PropertyMock(return_value=sample_record_string)
    type(mock_record).raw = prop_mock

    with app.app_context():
        with pytest.raises(CrawlerScheduleError):
            receive_oaiharvest_job(
                request=None,
                records=[mock_record],
                name="",
                spider="Test",
                workflow="test"
            )
tasks_test.py 文件源码 项目:odl-video-service 作者: mitodl 项目源码 文件源码 阅读 21 收藏 0 点赞 0 评论 0
def test_video_task_chain(mocker):
    """
    Test that video task get_task_id method returns the correct id from the chain.
    """
    def ctx():
        """ Return a mock context object """
        return celery.app.task.Context({
            'lang': 'py',
            'task': 'cloudsync.tasks.stream_to_s3',
            'id': '1853b857-84d8-4af4-8b19-1c307c1e07d5',
            'chain': [{
                'task': 'cloudsync.tasks.transcode_from_s3',
                'args': [351],
                'kwargs': {},
                'options': {
                    'task_id': '1a859e5a-8f71-4e01-9349-5ebc6dc66631'
                }
            }]
        })
    mocker.patch('cloudsync.tasks.VideoTask.request', new_callable=PropertyMock, return_value=ctx())
    task = VideoTask()
    assert task.get_task_id() == task.request.chain[0]['options']['task_id']
tasks_test.py 文件源码 项目:odl-video-service 作者: mitodl 项目源码 文件源码 阅读 24 收藏 0 点赞 0 评论 0
def test_video_task_bad_chain(mocker):
    """
    Test that video task get_task_id method returns the task.id if the chain is not valid.
    """
    def ctx():
        """ Return a mock context object """
        return celery.app.task.Context({
            'lang': 'py',
            'task': 'cloudsync.tasks.stream_to_s3',
            'id': '1853b857-84d8-4af4-8b19-1c307c1e07d5',
            'chain': [{
                'task': 'cloudsync.tasks.transcode_from_s3',
                'args': [351],
                'kwargs': {},
                'options': {}
            }]
        })
    mocker.patch('cloudsync.tasks.VideoTask.request', new_callable=PropertyMock, return_value=ctx())
    task = VideoTask()
    assert task.get_task_id() is None
views_test.py 文件源码 项目:annotran 作者: BirkbeckCTP 项目源码 文件源码 阅读 29 收藏 0 点赞 0 评论 0
def test_read_unauthenticated_user():
    """
        This should call "read_group" when trying to read
        translations for the selected combination of a group, page, and language.
        read_group method is mocked, so when it is called a group object is returned.
    """
    with mock.patch('annotran.languages.models.Language') as language:
        propLang = PropertyMock(return_value=2897)
        type(language).id = propLang
        language.get_by_public_language_id = MagicMock(return_value=language)

        with mock.patch('h.groups.models.Group') as group:
            propGroup = PropertyMock(return_value=2897)
            type(group).id = propGroup
            group.get_by_pubid = MagicMock(return_value=group)

            request = mock.Mock(authenticated_userid = None,
                                matchdict={'public_group_id': '12345',
                                           'public_language_id': '12345'})
            result = views.read(request)
            assert result == None
views_test.py 文件源码 项目:annotran 作者: BirkbeckCTP 项目源码 文件源码 阅读 29 收藏 0 点赞 0 评论 0
def test_read_private_group_unauthenticated():
    """
        This should call "read_group" when trying to read
        translations for the selected combination of a group, page, and language.
        read_group method is mocked, so when it is called a group object is returned.
    """
    with mock.patch('annotran.languages.models.Language') as language:
        propLang = PropertyMock(return_value=2897)
        type(language).id = propLang
        language.get_by_public_language_id = MagicMock(return_value=language)

        with mock.patch('h.groups.models.Group') as group:
            propGroup = PropertyMock(return_value=2897)
            type(group).id = propGroup
            group.get_by_pubid = MagicMock(return_value=group)

            request = _mock_request(authenticated_user=mock.Mock(groups=[]),
                                    matchdict={'public_group_id': '12345',
                                               'public_language_id': '12345'})
            result = views.read(request)
            assert result == None
views_test.py 文件源码 项目:annotran 作者: BirkbeckCTP 项目源码 文件源码 阅读 28 收藏 0 点赞 0 评论 0
def test_read_private_group_authenticated():
    """
        This should return None when trying to read
         translations for the selected combination of a group, page, and language, because group is
         not in the list of user's authorized groups.
    """
    with mock.patch('annotran.languages.models.Language') as language:
        propLang = PropertyMock(return_value=2897)
        type(language).id = propLang
        language.get_by_public_language_id = MagicMock(return_value=language)

        with mock.patch('h.groups.models.Group') as group:
            propGroup = PropertyMock(return_value=2897)
            type(group).id = propGroup
            group.get_by_pubid = MagicMock(return_value=group)

            annotran.groups.views.read_group = MagicMock(return_value=group)

            request = _mock_request(authenticated_user=mock.Mock(groups=[group]),
                                    matchdict={'public_group_id': '12345',
                                               'public_language_id': '12345'})
            result = views.read(request)
            assert result == group
test_core.py 文件源码 项目:charms.openstack 作者: openstack 项目源码 文件源码 阅读 26 收藏 0 点赞 0 评论 0
def test_assess_status_active(self):
        self.patch_object(chm_core.hookenv, 'status_set')
        # disable all of the check functions
        self.patch_target('check_if_paused', return_value=(None, None))
        self.patch_target('check_interfaces', return_value=(None, None))
        self.patch_target('custom_assess_status_check',
                          return_value=(None, None))
        self.patch_target('check_services_running', return_value=(None, None))
        self.patch_object(chm_core.hookenv, 'application_version_set')
        with mock.patch.object(AssessStatusCharm, 'application_version',
                               new_callable=mock.PropertyMock,
                               return_value="abc"):
            self.target._assess_status()
        self.status_set.assert_called_once_with('active', 'Unit is ready')
        self.application_version_set.assert_called_once_with("abc")
        # check all the check functions got called
        self.check_if_paused.assert_called_once_with()
        self.check_interfaces.assert_called_once_with()
        self.custom_assess_status_check.assert_called_once_with()
        self.check_services_running.assert_called_once_with()
test_interest.py 文件源码 项目:biweeklybudget 作者: jantman 项目源码 文件源码 阅读 29 收藏 0 点赞 0 评论 0
def test_find_payments(self):
        cls = LowestBalanceFirstMethod(Decimal('100.00'))
        s1 = Mock(spec_set=CCStatement)
        type(s1).minimum_payment = PropertyMock(return_value=Decimal('2.00'))
        type(s1).principal = PropertyMock(return_value=Decimal('10.00'))
        s2 = Mock(spec_set=CCStatement)
        type(s2).minimum_payment = PropertyMock(return_value=Decimal('5.00'))
        type(s2).principal = PropertyMock(return_value=Decimal('25.00'))
        s3 = Mock(spec_set=CCStatement)
        type(s3).minimum_payment = PropertyMock(return_value=Decimal('2.00'))
        type(s3).principal = PropertyMock(return_value=Decimal('1234.56'))
        s4 = Mock(spec_set=CCStatement)
        type(s4).minimum_payment = PropertyMock(return_value=Decimal('7.00'))
        type(s4).principal = PropertyMock(return_value=Decimal('3.00'))
        assert cls.find_payments([s1, s2, s3, s4]) == [
            Decimal('2.00'),
            Decimal('5.00'),
            Decimal('2.00'),
            Decimal('91.00')
        ]
test_interest.py 文件源码 项目:biweeklybudget 作者: jantman 项目源码 文件源码 阅读 30 收藏 0 点赞 0 评论 0
def test_find_payments_total_too_low(self):
        cls = LowestBalanceFirstMethod(Decimal('3.00'))
        s1 = Mock(spec_set=CCStatement)
        type(s1).minimum_payment = PropertyMock(return_value=Decimal('2.00'))
        type(s1).principal = PropertyMock(return_value=Decimal('10.00'))
        s2 = Mock(spec_set=CCStatement)
        type(s2).minimum_payment = PropertyMock(return_value=Decimal('5.00'))
        type(s2).principal = PropertyMock(return_value=Decimal('25.00'))
        s3 = Mock(spec_set=CCStatement)
        type(s3).minimum_payment = PropertyMock(return_value=Decimal('2.00'))
        type(s3).principal = PropertyMock(return_value=Decimal('1234.56'))
        s4 = Mock(spec_set=CCStatement)
        type(s4).minimum_payment = PropertyMock(return_value=Decimal('7.00'))
        type(s4).principal = PropertyMock(return_value=Decimal('3.00'))
        with pytest.raises(TypeError):
            cls.find_payments([s1, s2, s3, s4])
test_interest.py 文件源码 项目:biweeklybudget 作者: jantman 项目源码 文件源码 阅读 29 收藏 0 点赞 0 评论 0
def test_find_payments(self):
        cls = HighestBalanceFirstMethod(Decimal('100.00'))
        s1 = Mock(spec_set=CCStatement)
        type(s1).minimum_payment = PropertyMock(return_value=Decimal('2.00'))
        type(s1).principal = PropertyMock(return_value=Decimal('10.00'))
        s2 = Mock(spec_set=CCStatement)
        type(s2).minimum_payment = PropertyMock(return_value=Decimal('5.00'))
        type(s2).principal = PropertyMock(return_value=Decimal('25.00'))
        s3 = Mock(spec_set=CCStatement)
        type(s3).minimum_payment = PropertyMock(return_value=Decimal('2.00'))
        type(s3).principal = PropertyMock(return_value=Decimal('1234.56'))
        s4 = Mock(spec_set=CCStatement)
        type(s4).minimum_payment = PropertyMock(return_value=Decimal('7.00'))
        type(s4).principal = PropertyMock(return_value=Decimal('3.00'))
        assert cls.find_payments([s1, s2, s3, s4]) == [
            Decimal('2.00'),
            Decimal('5.00'),
            Decimal('86.00'),
            Decimal('7.00')
        ]
test_interest.py 文件源码 项目:biweeklybudget 作者: jantman 项目源码 文件源码 阅读 28 收藏 0 点赞 0 评论 0
def test_find_payments(self):
        cls = HighestInterestRateFirstMethod(Decimal('100.00'))
        s1 = Mock(spec_set=CCStatement)
        type(s1).minimum_payment = PropertyMock(return_value=Decimal('2.00'))
        type(s1).apr = PropertyMock(return_value=Decimal('0.0100'))
        type(s1).principal = PropertyMock(return_value=Decimal('10.00'))
        s2 = Mock(spec_set=CCStatement)
        type(s2).minimum_payment = PropertyMock(return_value=Decimal('5.00'))
        type(s2).apr = PropertyMock(return_value=Decimal('0.0200'))
        type(s2).principal = PropertyMock(return_value=Decimal('25.00'))
        s3 = Mock(spec_set=CCStatement)
        type(s3).minimum_payment = PropertyMock(return_value=Decimal('2.00'))
        type(s3).apr = PropertyMock(return_value=Decimal('0.0800'))
        type(s3).principal = PropertyMock(return_value=Decimal('1234.56'))
        s4 = Mock(spec_set=CCStatement)
        type(s4).minimum_payment = PropertyMock(return_value=Decimal('7.00'))
        type(s4).apr = PropertyMock(return_value=Decimal('0.0300'))
        type(s4).principal = PropertyMock(return_value=Decimal('3.00'))
        assert cls.find_payments([s1, s2, s3, s4]) == [
            Decimal('2.00'),
            Decimal('5.00'),
            Decimal('86.00'),
            Decimal('7.00')
        ]


问题


面经


文章

微信
公众号

扫码关注公众号