在我的Linux机器上,我希望创建某个文件夹的.tar.bz2文件.一旦我将自己放在该文件夹中(在终端中),我在终端命令行中键入什么来将压缩文件夹放在我的机器的主目录中?
假设我在文件夹/ home/user /文件夹中.在文件夹"文件夹"中有几个文件(txt,.c等).如何压缩.tar.bz2类型的文件夹并将其放在我的/ home目录中?
在/ home/user /文件夹中,我尝试了sudo tar -cvjSf folder.tar.bz2但是收到错误:
tar:懦弱地拒绝创建一个空档案
我正在64位Linux机器上用C编译一个hello world程序.我正在使用GCC ARM嵌入式工具链在带有ATMEL AT91SAM9G20处理器的FOX G20 V板上交叉编译我的程序.
在第一次拍摄时,我在编译时遇到了一些错误,因为程序无法识别printf,return等函数(标准C函数).所以我决定在函数之间建立联系,我认为这些函数是在libc.a库中定义的(如果我错了,请纠正我),arm-none-eabi-gcc -o hello hello.c libc.a但是结果仍会导致错误:
libc.a(lib_a-exit.o): In function `exit':
exit.c:(.text.exit+0x16): undefined reference to `_exit'
libc.a(lib_a-sbrkr.o): In function `_sbrk_r':
sbrkr.c:(.text._sbrk_r+0xc): undefined reference to `_sbrk'
libc.a(lib_a-writer.o): In function `_write_r':
writer.c:(.text._write_r+0x10): undefined reference to `_write'
libc.a(lib_a-closer.o): In function `_close_r':
closer.c:(.text._close_r+0xc): undefined reference to `_close'
libc.a(lib_a-fstatr.o): In function `_fstat_r':
fstatr.c:(.text._fstat_r+0xe): undefined reference to `_fstat'
libc.a(lib_a-isattyr.o): In function `_isatty_r':
isattyr.c:(.text._isatty_r+0xc): undefined reference to `_isatty'
libc.a(lib_a-lseekr.o): In function `_lseek_r':
lseekr.c:(.text._lseek_r+0x10): undefined reference to `_lseek'
libc.a(lib_a-readr.o): In function `_read_r': …Run Code Online (Sandbox Code Playgroud) 我有一个 Jest 单元测试,它正在测试模拟 API 调用的错误,以确保错误消息显示在页面上。在我的实际文件中,我用来notistack显示错误消息。我没有显示完整的 API 请求,因为我认为它不相关,所以简而言之,它如下:
myComponent.js:
import { useSnackbar } from 'notistack';
const myComponent = props => {
const { enqueueSnackbar } = useSnackbar()
//make an API call to an endpoint
...
if (response.ok) enqueueSnackbar("API Success", { variant: "success" });
else enqueueSnackbar("API Failed", { variant: "error" });
}
Run Code Online (Sandbox Code Playgroud)
因此,我正在单元测试中测试上述内容。再说一次,我不会粘贴整个单元测试,因为我认为它不相关,但类似于:
myComponent.test.js
import { render, screen } from "@testing-library/react"
test("testing error message on API call", async () => {
// mock the API call to return a …Run Code Online (Sandbox Code Playgroud) 我有一个端点实现,我将一个对象传递给参数列表.我试图使用@NotNull注释验证此对象不为null.
@POST
@Path("path")
public Response endpointMethod(@NotNull @ApiParam(value = "abc", required = true) Object object) {
return Response.status(Status.OK).build();
}
Run Code Online (Sandbox Code Playgroud)
如果验证对象不为null,则端点将仅返回200 OK响应.但是,当我使用指定的路径向此端点发出请求时,并且正文中没有任何内容,则不会抛出任何错误.相反,我能够检索200响应(即使我在返回响应之前检查对象是否为null,它表明情况就是这样).
有人可以指导我如何以正确的方式验证对象是否为空?
views.py我有一个外部 API POST 调用,该调用是从我的内部进行的:
class MyView(APIView):
def post(self, request):
my_headers = {
"Content-Type": "application/json"
}
response = requests.post("https://some-external-api.com", data=json.dumps(request.data), headers=my_headers)
return Response(status.response.status_code)
Run Code Online (Sandbox Code Playgroud)
正如您所看到的,这是一个非常简单的情况,使用视图端点接收到的相同数据对外部 API 进行 POST 调用。
现在,我正在尝试为此创建一个单元测试,同时模拟来自“https://some-external-api.com”的响应,因此我显然不必每次都对该单元进行实际调用测试运行。但我遇到了困难,因为我无法让模拟方面正常工作,并且每次请求都发送到实际的外部端点。
我知道网上有很多例子,但我尝试过的似乎都不起作用。我还没有看到模拟响应应该来自视图文件本身的示例。截至目前,我有这个:
@patch('requests.post')
def test_external_api_call(self, mock_post)
mock_post.return_value.ok = True
response = self.client.post(reverse('my-view'), {
//my random dummy json object goes here
}, format='json')
self.assertEqual(response.status_code, 200)
Run Code Online (Sandbox Code Playgroud)
正如我所提到的,使用上面的代码,实际调用了“https://some-external-api.com”,而不是被嘲笑。
python unit-testing python-requests python-unittest python-unittest.mock
我对HTML和CSS(包括Bootstrap)有很好的理解,我觉得我已经准备好进行一些用户交互,并为HTML页面添加动态内容。
我的问题是,我从哪里开始学习实现这一目标?
例如,我需要学习哪种语言才能将新闻文章动态添加到特定网页?我显然可以在代码中包含文章(使用标题和段落元素的混合),但是显然,每次进行更改时,都需要重新部署代码。
任何有用的网站的帮助和/或指导将不胜感激。
我正在尝试通过ssh. 但是,在尝试连接时,connection refused即使尝试更改端口号,我也总是收到一条消息。我已经尝试了一切来解决这个问题,从更改文件/etc/ssh/到接受特定的端口号,到sudo iptables -A INPUT -p tcp --dport ssh -j ACCEPT
.
在阅读了一些评论后,我发现问题之一可能是我没有ssh在我的嵌入式设备上安装。那么,我实际上如何在嵌入式设备上安装 ssh?我正在使用带有 ATMEL AT91SAM9G20 的 FOX G20 V 板。
我将不胜感激,因为我已经被这个问题困扰了好几天了。
我正在尝试使用react-faq-component,但遇到问题。我或多或少复制了与链接中相同的示例(带有额外的打字稿)。
到目前为止,我的代码如下所示:
索引.tsx
import React from "react"
import Faq from "react-faq-component"
interface PropTypes {
data: {
title: string,
rows: [{
title: string,
content: string
}]
},
styles: any,
}
const data = {
title: "FAQ (How it works)",
rows: [
{
title: "Lorem ipsum dolor sit amet,",
content: `Lorem ipsum dolor sit amet, consectetur adipiscing elit. In sed tempor sem. Aenean vel turpis feugiat,
ultricies metus at, consequat velit. Curabitur est nibh, varius in tellus nec, mattis pulvinar …Run Code Online (Sandbox Code Playgroud) 我对factory-boy很陌生,我正在尝试向单元测试中的 API 端点发送请求,这需要对用户进行身份验证。端点需要在标头中以'Bearer ' + token. 我在网上查看了一些示例,这是我迄今为止在单元测试中提出的:
测试用户.py
class UserFactory(factory.Factory):
class Meta:
model = user
username = factory.LazyAttribute(lambda t: "myuser")
password = factory.PostGenerationMethodCall('set_password', 'my_super_secret')
is_staff = True
is_active = True
class UserViewSetTest(TestCase):
def setUp(self):
pwd = 'my_super_secret'
self.user = UserFactory(password=pwd)
self.client = Client()
self.assertTrue(self.client.login(username=self.user.username, password=pwd))
def test_user_list(self):
response = self.client.get(reverse('user', kwargs={'fromdate': '2017-01-01', 'todate': '2017-04-01'})), format='json')
self.assertEqual(response.status_code, 200)
Run Code Online (Sandbox Code Playgroud)
最初的错误是这个断言self.assertTrue(self.client.login(username=self.user.username, password=pwd))是错误的,因此测试立即失败。即使我删除了该行,API 调用也会返回 401,因为身份验证不成功。
如何使用 factory-boy 在此 API 调用中成功验证用户,以便我可以在 API 请求中发送令牌?我可以使用框架提供的用户模型吗?
编辑:
我试图创建一个令牌,以便将它传递给这样的标头:
def setUp(self): …Run Code Online (Sandbox Code Playgroud) django unit-testing django-unittest django-rest-framework factory-boy
我有一个可以打开和关闭材质 UI 对话框的组件。目前,页面上显示了一些文本,后面跟着一个用于打开对话框的按钮。我创建了一个代码沙箱来突出显示我的位置: https: //codesandbox.io/s/formdialog-material-demo-forked-cgjgh ?file=/demo.js:0-8775
当对话框打开时,是否可以在后台(即主页上)启用滚动,以便用户可以滚动文本作为示例?我已经添加了hideBackdrop道具,以便true隐藏背景,但我不知道如何做到这一点,以便可以启用主页上的滚动。
我有一个xml文件,格式如下:
<list>
<version>1.5</version>
<version>1.4</version>
<version>1.3</version>
<version>1.2</version>
</list>
Run Code Online (Sandbox Code Playgroud)
我的想法是我总是用新版本更新第一个版本标签.当我这样做时,我会替换后续标签.
例如,当我将1.6版本更新为第一个标记(我知道该怎么做)时,以下标记将是:
<list>
<version>1.6</version>
<version>1.5</version>
<version>1.4</version>
<version>1.3</version>
</list>
Run Code Online (Sandbox Code Playgroud)
我试图让两个选项继续下去.
第一个选项: 我首选的选项是搜索xml文件并用版本标签i替换版本标签i + 1.就像是:
sed -E '2,/<version>.*<\/version>/s#<version>(.*)</c>#<version>\1</version>#' file.xml
Run Code Online (Sandbox Code Playgroud)
我搜索版本的第二个实例并将其替换为第一个版本的实例(当前不工作).
第二种选择: 我的第二种选择是将版本标签存储在变量中:
version=$(grep -oPm1 "(?<=version>)[^<]+" file.xml)
version2=$(grep -oPm2 "(?<=version>)[^<]+" file.xml)
Run Code Online (Sandbox Code Playgroud)
然后用版本1替换版本2并进行替换:
sed -i "s/${version2}/${version}/g" file.xml
Run Code Online (Sandbox Code Playgroud)
但是,这个选项给出了:
sed:-e expression#1,char 9:unterminated's'命令.
当我尝试:
sed -i "/$version2/s/${version2}/${version}/g" file.xml
Run Code Online (Sandbox Code Playgroud)
我明白了:
未终止的地址正则表达式
显然,任一选项的想法都是将代码放在一个循环中,以便我可以运行它一次.但是,我被困住了,我试过的两个选项都不起作用.
这可能是一个非常愚蠢的问题,但我目前有一个包含一些 HTML 内容的脚本。运行脚本后,我可以轻松创建 HTML 页面:
./scriptName.sh > test.html
Run Code Online (Sandbox Code Playgroud)
然而,我想要实现的是在脚本中创建 HTML 页面,并且在执行时不将其作为参数传递,也不由用户以任何方式指定。
换句话说,我希望脚本的运行方式如下:
./scriptName.sh
Run Code Online (Sandbox Code Playgroud)
在该脚本中,创建的 HTML 与执行时传递的 HTML 类似。
这可能吗?如果是这样,我将如何实现这一目标?
就其价值而言,我的脚本非常简单,如下所示:
#!/bin/bash
cat << _EOF_
<!DOCTYPE html>
<html>
<head>
</head>
<body>
<h1>Hello World</h1>
</body>
</html>
_EOF_
Run Code Online (Sandbox Code Playgroud) linux ×4
javascript ×3
reactjs ×3
unit-testing ×3
arm ×2
bash ×2
html ×2
api ×1
atmel ×1
c ×1
compression ×1
css ×1
django ×1
embedded ×1
factory-boy ×1
gcc ×1
http ×1
java ×1
jestjs ×1
jquery ×1
material-ui ×1
notistack ×1
npm ×1
processor ×1
python ×1
react-hooks ×1
react-native ×1
regex ×1
rest ×1
scripting ×1
sed ×1
shell ×1
ssh ×1
tar ×1
xml ×1