我正在针对一个API编写一些单元测试,该API要么返回所有书籍,要么只返回查询参数中给定类型的书籍.当我在本地开发服务器中点击它时,这似乎正常.但是,如果在我的单元测试中指定了类型,它甚至不会进入else语句.
我的单元测试看起来像这样:
class TitlesAndBlurbsListTestCase(APITestCase):
def setUp(self):
# Creates a lot of books with genre horror
# and books not in the horror genre
def test_horror_genre(self):
# Ensure that screener can see all the available books
self.client.login(username='b', password='b')
response = self.client.get('/api/titles-and-blurbs/?genre=horror')
self.assertEqual(response.status_code, status.HTTP_200_OK)
# Ensure that the screener gets all horror books at first
horror_books = TitlesAndBlurbs.objects.filter(genre='horror')
# I keep getting an assertion error here - it returns all the books
self.assertEqual(len(response.data), horror_books.count())
Run Code Online (Sandbox Code Playgroud)
我的api视图看起来像这样
class TitlesAndBlurbsListViewSet(viewsets.mixins.ListModelMixin,
viewsets.mixins.RetrieveModelMixin,
viewsets.GenericViewSet):
model = TitlesAndBlurbs …Run Code Online (Sandbox Code Playgroud) 使用弹性搜索后端从haystack返回的结果对我来说似乎是错误的.我的搜索索引如下:
from haystack import indexes
from .models import IosVideo
class VideoIndex(indexes.SearchIndex, indexes.Indexable):
text = indexes.CharField(document=True, use_template=True)
title = indexes.CharField(model_attr='title')
absolute_url = indexes.CharField(model_attr='get_absolute_url')
# content_auto = indexes.EdgeNgramField(model_attr='title')
description = indexes.CharField(model_attr='description')
# thumbnail = indexes.CharField(model_attr='thumbnail_url', null=True)
def get_model(self):
return IosVideo
def index_queryset(self, using=None):
return self.get_model().objects.filter(private=False)
Run Code Online (Sandbox Code Playgroud)
我的文本文件如下:
{{ object.title }}
{{ object.text }}
{{ object.description }}
Run Code Online (Sandbox Code Playgroud)
我的疑问是
SearchQuerySet().models(IosVideo).filter(content="darby")[0]
Run Code Online (Sandbox Code Playgroud)
返回的结果让我认为这不起作用是具有以下特征的视频对象
title: u'Cindy Daniels'
description: u'',
text: u'Cindy Daniels\n\n\n',
absolute_url: u'/videos/testimonial/cindy-daniels/'
Run Code Online (Sandbox Code Playgroud)
为什么在世界上查询会返回这样的结果?我很困惑.
我目前的理论是它在查询中对char的每个子集进行标记,并将其用作部分匹配.有没有办法减少这种容差,使其更接近匹配.
我的pip信息是elasticsearch == 1.2.0 django-haystack == 2.3.1
弹性搜索版本号为1.3.1
我正在阅读Ionic的源代码.我遇到了这个正则表达式,我对它感到非常困惑.
([\s\S]+?)
Run Code Online (Sandbox Code Playgroud)
好的,它是在每个char上分组,可以是白色空格,还是非白色空间???
他们为什么不这么做
(.+?)
Run Code Online (Sandbox Code Playgroud)
我错过了什么吗?
我正在尝试从我的AWS Lambda发出http请求,但它超时了.
我的代码看起来与此类似:
import requests
def lambda_handler(event, context):
print('Im making the request')
request.get('http://www.google.com')
print('I recieved the response')
Run Code Online (Sandbox Code Playgroud)
但是当我测试这个时,我会超时.
输出是
Im making the request
END RequestId: id
REPORT RequestId: id Duration: 15003.25 ms Billed Duration: 15000 ms Memory Size: 128 MB Max Memory Used: 18 MB
2016-04-08T20:33:49.951Z id Task timed out after 15.00 seconds
Run Code Online (Sandbox Code Playgroud)
所以我知道问题不是找不到请求包,而是运行我的python代码.我只想弄清楚为什么它会超时.
我已经浏览了文档,我甚至创建了一些搜索后端,但我仍然对这些事情在haystack中做了什么感到困惑.搜索结束时搜索你在类中继承的字段indices.SearchIndex,indexes.Indexable,或者是后端搜索模板中的文本?有人能解释一下吗?
在django haystack中,您将创建一个类来定义应该查询的字段(以及我理解它的方式),如下所示:
class ProductIndex(indexes.SearchIndex, indexes.Indexable):
text = indexes.CharField(document=True, use_template=True)
name = indexes.CharField(model_attr='title', boost=1.75)
description = indexes.CharField(model_attr='description')
short_description = indexes.CharField(model_attr='short_description')
def get_model(self):
return Product
def index_queryset(self, using=None):
"""Used when the entire index for model is updated."""
return self.get_model().objects.filter(active=True,
published_at__lte=datetime.now())
Run Code Online (Sandbox Code Playgroud)
您还将创建一个可以执行某项操作的模板txt - 我不确定是什么.我知道在搜索算法期间搜索后端将覆盖此模板.
{{ object.name }}
{{ object.description }}
{{ object.short_description }}
{% for related in object.related %}
{{ related.name }}
{{ related.description }}
{% endfor %}
{% for category in object.categories.all %}
{% if category.active %}
{{ category.name }}
{% …Run Code Online (Sandbox Code Playgroud) 我正在制作一个简单的玩具angular2项目,每隔5秒就会击中一个网址.现在我拥有它以便轮询网址,当文档加载时它不会等待.但它看起来真的很笨重.有更好的解决方案吗?
Observable.interval(1000 * 5)
.flatMap(() => this.http.get(url))
.merge(this.http.get(url)) // Merges a stream that starts right away!!!
.map((res:Response) => res.json());
Run Code Online (Sandbox Code Playgroud) 我正在使用库dc-js来显示折线图.据我所知,一切都运作良好.图表甚至大部分显示正确.但是,除了我在图表上想要的线条之外,还有一条黑色线条位于蓝色线条后面,它是黑色的.黑线是从第一个值到最后一个值的单个线性增量.

这是我的代码:
var stripeData = <Data>;
var mrrLineChart = dc.lineChart("#line-chart");
var data = [];
// console.log(stripeData);
stripeData.forEach(function (dat) {
// console.log(dat.created);
data.push({date: parseDate(dat.created.substr(0, 10)), amount: dat.amount});
});
// console.log(data);
var ndx = crossfilter(data);
var dateDim = ndx.dimension(function(d) {
return d.date;
});
var amount = dateDim.group().reduceSum(function(d) { return +d.amount; });
// console.log(amount);
var minDate = dateDim.bottom(1)[0].date;
var maxDate = dateDim.top(1)[0].date;
// console.log(minDate);
// console.log(maxDate);
mrrLineChart.width(960)
.height(150)
.margins({top: 10, right: 50, bottom: 50, left: 50})
.dimension(dateDim)
.group(amount, "Amount")
.transitionDuration(500)
.brushOn(false)
.renderArea(true)
.renderDataPoints(true) …Run Code Online (Sandbox Code Playgroud) 我无法弄清楚在向量中存储迭代器所需的签名.我所有的谷歌foo只是告诉我如何在向量上使用迭代器.
django ×3
javascript ×2
angular ×1
aws-lambda ×1
c++ ×1
d3.js ×1
iterator ×1
python ×1
regex ×1
rxjs ×1
unit-testing ×1
vector ×1