小编Jon*_*ray的帖子

如何关闭Netty库调试输出?

我正在使用Netty(通过Ning异步HTTP )通过HTTP检索文档.这会在控制台上产生大量的调试输出,如下面列出的单个文档请求.

任何人都知道如何关闭它?我真的不需要看到这个输出.

我打电话给Scala,如果这有任何区别的话.

15:07:14.273 [run-main] DEBUG c.n.h.c.p.n.NettyAsyncHttpProvider - 
Non cached request 
DefaultHttpRequest(chunked: false)
GET /api/search.json?q=foo HTTP/1.1
Host: www.documentcloud.org
Connection: keep-alive
Accept: */*
User-Agent: NING/1.0

using Channel 
[id: 0x2839ca40]

15:07:14.930 [New I/O client worker #1-1] DEBUG c.n.h.c.p.n.NettyAsyncHttpProvider - 

Request DefaultHttpRequest(chunked: false)
GET /api/search.json?q=foo HTTP/1.1
Host: www.documentcloud.org
Connection: keep-alive
Accept: */*
User-Agent: NING/1.0

Response DefaultHttpResponse(chunked: true)
HTTP/1.1 200 OK
Content-Type: application/json; charset=utf-8
Content-Length: 10477
Connection: keep-alive
Vary: Accept-Encoding
Status: 200
X-Powered-By: Phusion Passenger (mod_rails/mod_rack) 3.0.13
ETag: "4f8f766d639dd84d014dfee3abb45de2"
X-Runtime: 611
Cache-Control: …
Run Code Online (Sandbox Code Playgroud)

java error-logging scala netty

13
推荐指数
2
解决办法
1万
查看次数

使用mount()的酶测试无法使用React模态对话框的内容

我有一个带有模态对话框的React组件(使用构建reactstrap,但其他人报告了类似的问题react-bootstrap和其他类型的模态组件).尽管它们在实际应用程序中渲染得很好,但是酶无法在模态中找到任何组件.最小的例子:

import React from 'react'
import { Modal } from 'reactstrap'

export default class MyModal extends React.Component {

    render() {
        return (
            <div className="outside"> Some elements outside of the dialog </div>
            <Modal isOpen={this.props.modalOpen}>
                <div className="inside"> Content of dialog </div>
            </Modal>
         );
    } 
}
Run Code Online (Sandbox Code Playgroud)

我想像这样测试内容(在这种情况下使用jest)

import React from 'react'
import MyModal  from './MyModal'
import { mount } from 'enzyme'

it('renders correctly', () => {
    const wrapper = mount( <MyModal modalOpen/> );

    expect(wrapper).toMatchSnapshot();

    // Passes
    expect(wrapper.find('.outside')).toHaveLength(1); …
Run Code Online (Sandbox Code Playgroud)

unit-testing modal-dialog reactjs jestjs enzyme

7
推荐指数
1
解决办法
4568
查看次数

如何在Scala中为特定的Map类型创建类型别名

我有一堆使用Map [String,Float]的代码.所以我想做

type DocumentVector = Map[String, Float]
...
var vec = new DocumentVector
Run Code Online (Sandbox Code Playgroud)

但这不编译.我收到消息:

trait Map is abstract; cannot be instantiated
[error]       var vec = new DocumentVector
Run Code Online (Sandbox Code Playgroud)

好的,我想我明白这里发生了什么.Map不是具体的类,只是通过()生成一个对象.所以我能做到:

object DocumentVector { def apply() = { Map[String, Float]() } }
...
var vec = DocumentVector()
Run Code Online (Sandbox Code Playgroud)

虽然它有点笨重,但是有效.但现在我想嵌套这些类型.我想写:

type DocumentVector = Map[String, Float]
type DocumentSetVectors = Map[DocumentID, DocumentVector]
Run Code Online (Sandbox Code Playgroud)

但这给出了同样的"无法实例化"的问题.所以我可以尝试:

object DocumentVector { def apply() = { Map[String, Float]() } }
object DocumentSetVectors { def apply() = { Map[DocumentID, DocumentVector]() } }
Run Code Online (Sandbox Code Playgroud)

但是DocumentVector实际上不是一个类型,只是一个带有apply()方法的对象,所以第二行不会编译.

我觉得我错过了一些基本的东西......

types scala map

6
推荐指数
2
解决办法
4091
查看次数

开玩笑的酶浅测试不能完全呈现React组件的所有元素

我正在写一个笑话酶测试,如下所示:

import React from 'react';
import ManageDrugTermPage from '../js/manageDrugTermPage.jsx';
import toJson from 'enzyme-to-json';
describe('manage drug term page test suite', () => {

 it('snapshot test', () => {
    const setRouteLeaveHook =jest.fn();
    let wrapper = shallow(
        <ManageDrugTermPage params={{id : 25, router: setRouteLeaveHook}}/>
    );
    expect(toJson(wrapper)).toMatchSnapshot();
})
})
Run Code Online (Sandbox Code Playgroud)

我想在快照中查看ManageDrugTermPage的详细信息,但快照仅显示:

 exports[`manage drug term page test suites snapshot test 1`] = `
    <ManageDrugTermPage
      params={
        Object {
          "id": 25,
          "router": [Function],
        }
      }
    />
    `;
Run Code Online (Sandbox Code Playgroud)

如何在快照中呈现ManageDrugTermPage?我不想使用renderer.create,但想通过酶做到这一点。

unit-testing reactjs jestjs enzyme

5
推荐指数
1
解决办法
3235
查看次数

用于填充可用空间的 Flexbox 在 React.js 组件内不起作用

我正在尝试根据此示例设置一个简单的 Flexbox 布局,其内容在页眉和页脚之间扩展。当我将适当的 HTML 直接放入页面模板中时,它工作正常,但当我在 React 组件中渲染完全相同的 HTML 时,它会失败。

这是纯 HTML:

<div class="box">
  <div class="header">
    <p><b>header</b></p>
  </div>
  <div class="content">
    <p>
      <b>content</b>
      (fills remaining space)
    </p>
  </div>
  <div class="footer">
    <p><b>footer</b> (fixed height)</p>
  </div>
</div>
Run Code Online (Sandbox Code Playgroud)

我的style.css在所有情况下都是这样:

html, body {
  height: 100%;
}

.box {
  display: flex;
  flex-flow: column;
  height: 100%;
}

.header {
  flex: 0 1 auto;
}

.content {
  flex: 1 1 auto;
}

.footer {
  flex: 0 1 40px;
} 
Run Code Online (Sandbox Code Playgroud)

当作为静态 HTML 时,效果非常好。如果我只提供一个带有单个rootdiv 的空页面,并使用以下 HTML …

flexbox reactjs

5
推荐指数
1
解决办法
8644
查看次数

如何确保立即发送Django频道消息?

我们的想法是在worker.connectworker 上运行后台任务.执行任务时,我希望通过通知组将其进度发送到已连接的客户端.

问题:发送到通知组的消息会延迟,直到工作人员上的任务完成.因此:在延迟5秒(sleep(5))之后,客户端上同时出现"开始"和"停止"消息.我希望消息"开始",然后是5秒延迟,然后是"停止"消息.知道为什么不是这样吗?

我运行了以下三个进程:

  • daphne tests.asgi:channel_layer
  • python manage.py runworker --exclude-channel=worker.connect
  • python manage.py runworker --only-channel=worker.connect

views.py:

def run(request, pk):
    Channel('worker.connect').send({'pk': pk})
    return HttpResponse(status=200)
Run Code Online (Sandbox Code Playgroud)

consumers.py:

def ws_connect(message):
    Group('notifications').add(message.reply_channel)
    message.reply_channel.send({"accept": True})

def worker_connect(message):
    run_channel(message)
Run Code Online (Sandbox Code Playgroud)

views.py:

def run_channel(message):
    Group('notifications').send({'text': 'Start'})
    sleep(5)
    Group('notifications').send({'text': 'Stop'})
Run Code Online (Sandbox Code Playgroud)

routing.py

channel_routing = {
    'websocket.connect': consumers.ws_connect,
    'worker.connect': consumers.worker_connect,
}
Run Code Online (Sandbox Code Playgroud)

django django-channels

3
推荐指数
1
解决办法
2105
查看次数