我正在构建一个Django Rest框架,并希望测试APIwith coreapi库.我可以coreapi在python脚本中以编程方式创建一个对象,但在命令行中,我无法创建相同的对象,当我列出coreapi端点时,我得到的列表只包含用于读取和列出的端点,即使我添加了有效的凭据.
我的架构:
{
"_type": "document",
"_meta": {
"url": "http://127.0.0.1:8000/api/schema/",
"title": "NEP API"
},
"experiments": {
"list": {
"_type": "link",
"url": "/api/experiments/",
"action": "get",
"fields": [
{
"name": "page",
"location": "query",
"schema": {
"_type": "integer",
"title": "Page",
"description": "A page number within the paginated result set."
}
}
]
},
"create": {
"_type": "link",
"url": "/api/experiments/",
"action": "post",
"encoding": "application/json",
"fields": [
{
"name": "title",
"required": true,
"location": "form",
"schema": {
"_type": …Run Code Online (Sandbox Code Playgroud) 我在动画窗口中找不到任何滚动选项。动画窗口中没有滚动条,我找不到任何其他选项用于在动画窗口中滚动,所以当我添加更多状态时,很难选择,因为内容无法适应窗口。请参阅屏幕截图参考。那么有没有像按住shift和移动光标这样的快捷键?请如果有人知道告诉我如何平移动画窗口?
我需要模拟 elasticsearch 调用,但我不确定如何在我的 python 单元测试中模拟它们。我看到这个框架叫做ElasticMock. 我尝试按照文档中指示的方式使用它,但它给了我很多错误。它在这里:https :
//github.com/vrcmarcos/elasticmock
我的问题是,有没有其他方法可以模拟弹性搜索调用?
这似乎也没有答案:模拟弹性搜索数据。这只是表明实际进行集成测试而不是单元测试,这不是我想要的: 在 Django app 内进行单元测试弹性搜索。
任何人都可以指出我正确的方向吗?我从来没有用ElasticSearch.
我已经用纯 HTML 和 CSS 完成了一个棋盘。但由于我不是设计师,我无法弄清楚如何做一件简单的事情。我正在尝试在板周围制作一个框架。我正在使用 CSS 边框属性在table.chessboard元素中设置边距(下面的代码)。但是该边距在棋盘内扩大并减少了边界上的方块。
我能做些什么来解决这个问题?
代码:
table.chessboard {
margin: 80px auto;
background: #999;
border: 25px solid #333;
}
td.chessboard {
width: 70px;
height: 70px;
}
tr.chessboard:nth-child(odd) td.chessboard:nth-child(even),
tr.chessboard:nth-child(even) td.chessboard:nth-child(odd) {
background: white;
}Run Code Online (Sandbox Code Playgroud)
<table class="chessboard">
<tr class="chessboard">
<td class="chessboard"></td>
<!-- line above 8 times -->
</tr>
<tr class="chessboard">
<td class="chessboard"></td>
<!-- line above 8 times -->
</tr>
<tr class="chessboard">
<td class="chessboard"></td>
<!-- line above 8 times -->
</tr>
<tr class="chessboard">
<td class="chessboard"></td>
<!-- line above …Run Code Online (Sandbox Code Playgroud)我正在尝试测试将数据发布到django-rest-framework需要身份验证的视图中。但是我不能。我已经阅读了许多假定解决方案的线程,但是找不到任何可以解决我的问题。
序列化器:
class ResearcherSerializer(serializers.ModelSerializer):
studies = serializers.PrimaryKeyRelatedField(
many=True, queryset=Study.objects.all()
)
class Meta:
model = Researcher
fields = ('id', 'first_name', 'surname', 'email', 'studies')
Run Code Online (Sandbox Code Playgroud)
视图:
class ResearcherSerializer(serializers.ModelSerializer):
studies = serializers.PrimaryKeyRelatedField(
many=True, queryset=Study.objects.all()
)
class Meta:
model = Researcher
fields = ('id', 'first_name', 'surname', 'email', 'studies')
Run Code Online (Sandbox Code Playgroud)
测试:
class ResearcherAPITest(APITestCase):
base_url = reverse('api_researchers')
# ...
def test_POSTing_a_new_researcher(self):
user = User.objects.create(username='lab1', password='nep-lab1')
self.client.login(username=user.username, password=user.password)
response = self.client.post(
self.base_url,
{
'first_name': 'João',
'surname': 'das Rosas',
}
)
self.assertEqual(response.status_code, status.HTTP_201_CREATED)
new_researcher = Researcher.objects.first()
self.assertEqual(new_researcher.first_name, 'João') …Run Code Online (Sandbox Code Playgroud) 我在models.py中有一个耐心的课程
class Patient(models.Model):
cpf_id = models.CharField(null=True, blank=True, max_length=15, unique=True, validators=[validate_cpf])
rg_id = models.CharField(max_length=15, null=True, blank=True)
name_txt = models.CharField(max_length=50)
number_record = models.AutoField(primary_key=True)
medical_record_number = models.CharField(max_length=25, null=True, blank=True)
natural_of_txt = models.CharField(max_length=50, null=True, blank=True)
citizenship_txt = models.CharField(max_length=50, null=True, blank=True)
street_txt = models.CharField(max_length=50, null=True, blank=True)
class Meta:
permissions = (
("view_patient", "Can view patient"),
)
def __unicode__(self): # Python 3: def __str__(self):
return \
self.name_txt, self.cpf_id, self.rg_id, self.medical_record_number, self.natural_of_txt, \
self.citizenship_txt, self.street_txt
Run Code Online (Sandbox Code Playgroud)
例如,当我将变量归于所有对象或使用某些过滤器过滤某些对象时,
patient = Patient.objects.all()
Run Code Online (Sandbox Code Playgroud)
好的,没有消息错误。
但是当我尝试列出此对象时,出现以下消息错误
Traceback (most recent call last):
File …Run Code Online (Sandbox Code Playgroud) 在几个手册(包括官方GNU/Linux命令行工具tldp.org)中,建议使用单引号(或双引号)来避免bash解释通配符或正则表达式符号,如插入符号(^)和美元($).
但在一些例子中,没有必要使用单/双引号.例如:
(1)
$ touch 'fo*'
Run Code Online (Sandbox Code Playgroud)
和
$ touch fo*
Run Code Online (Sandbox Code Playgroud)
fo*在两个命令行窗体中创建相同的文件.
(2)
$ grep '^foo' file.txt
Run Code Online (Sandbox Code Playgroud)
和
$ grep ^foo file.txt
Run Code Online (Sandbox Code Playgroud)
都foo在file.txt行的开头搜索一个字符串.
为什么手册建议使用单/双引号来避免bash解释,如果bash实际上不首先解释一些通配符和正则表达式符号?