小编Vau*_*han的帖子

单元测试Django查询集

我正在尝试用Django/unittest学习单元测试.

这些是我的模型的简单版本:

class Device(models.Model):
    name = models.CharField(max_length=100)

    def get_ips(self):
        return DeviceIP.objects.filter(device=self.id)


class DeviceIP(models.Model):
    ip = models.GenericIPAddressField()
    device = models.ForeignKey(Device)
Run Code Online (Sandbox Code Playgroud)

这是我提出的测试代码:

from django.test import TestCase

class DeviceTest(TestCase):

    def test_get_ips(self):
        device = Device()
        device.name = 'My Device'

        ip1 = DeviceIP()
        ip1.ip = '127.0.0.1'
        ip1.device = device
        ip1.save()

        ip2 = DeviceIP()
        ip2.ip = '127.0.0.2'
        ip2.device = device
        ip2.save()

        ip3 = DeviceIP()
        ip3.ip = '127.0.0.3'
        ip3.device = device
        ip3.save()

        self.assertEqual(device.get_ips(), [ip1, ip2, ip3])
Run Code Online (Sandbox Code Playgroud)

测试结果失败,因为AssertionError即使字符串表示device.get_ips()[ip1, ip2, ip3]相同.

如果我尝试使用self.assertListEqual …

python django django-unittest python-unittest

8
推荐指数
2
解决办法
4792
查看次数

使用overflow:hidden一次隐藏一个单词

当元素不够宽以显示文本内容时,有没有办法一次使用CSS隐藏一个单词(而不是一次一个字母)?

例如,使用以下代码,当浏览器窗口变窄以显示整个句子时,我希望它显示Lorem ipsum dolor sit...而不是Lorem ipsum dolor sit ame...

HTML:

<div>Lorem ipsum dolor sit amet</div>
Run Code Online (Sandbox Code Playgroud)

CSS:

div { overflow:hidden; text-overflow:ellipsis; white-space-nowrap; }
Run Code Online (Sandbox Code Playgroud)

(我不需要支持旧浏览器)

css

6
推荐指数
1
解决办法
933
查看次数

除非有必要使用CSS,否则避免换行

是否可以使用CSS自动控制换行,以便在调整浏览器窗口大小时发生以下情况:

  • 当s1和s2都适合div时,它们保持在同一条线上
  • s2在没有包装的情况下不再适合时会掉到第二行
  • 当s2不再适合div时,s2会换行

HTML:

<body>
    <div>
        <span id="s1">Lorem ipsum dolor:</span>
        <span id="s2">sit amet consectetur adipiscing eli</span>
    </div>
</body>
Run Code Online (Sandbox Code Playgroud)

所以三种可能的观点是:

1:

Lorem ipsum dolor:坐下来欣赏伊莱

2:

Lorem ipsum dolor:
坐下来欣赏伊莱

3:

Lorem ipsum dolor:
坐下来欣赏
伊莱

s1中的单词总是相同的,但s2中的单词可能会有所不同,所以我不能只white-space:nowrap根据页面的宽度进行更改.

一旦浏览器支持在Chrome和/或Firefox中运行,它就不是一个大问题.

这是一个可以使用的简单JSFiddle.

css

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

标签 统计

css ×2

django ×1

django-unittest ×1

python ×1

python-unittest ×1