小编Sco*_*lby的帖子

使用<use>引用的缩放内联SVG符号

我将SVG徽标定义为符号,如下所示:

<svg class="SpriteSheet">
    <symbol id="icon-logo" viewBox="-12 -79.61 407.19 108.36">
        <path id="logo-upperLeft" d="M0-67.61l83.66 0 0-10 -93.66 0 0 30.92 10 0Z" transform="translate(-2 -2)"></path>
        <path id="logo-upperRight" d="M383.19-67.61l-83.66 0 0-10 93.66 0 0 30.92 -10 0Z" transform="translate(2 -2)"></path>
        <path id="logo-lowerLeft" d="M0 16.75l83.66 0 0 10 -93.66 0 0-30.92 10 0Z" transform="translate(-2 2)"></path>
        <path id="logo-lowerRight" d="M383.19 16.75l-83.66 0 0 10 93.66 0 0-30.92 -10 0Z" transform="translate(2 2)"></path>
    </symbol>
</svg>
Run Code Online (Sandbox Code Playgroud)

此定义包含在顶部body和样式中display:none.

在文档的后面,我以这种方式使用徽标:

<header class="Header">
    <h1 class="Header-headline">
        <a href="/">
            <svg class="Header-logo">
                <use …
Run Code Online (Sandbox Code Playgroud)

css svg

8
推荐指数
1
解决办法
4729
查看次数

使用 pytest 和 pytest-mock 模拟整个包

我有一个使用该包的类tmdbsimple

电影.py

import tmdbsimple as tmdb

tmdb.API_KEY = '12345'

class Movie():
    def __init__(self, tmdb_id):
        movie = tmdb.Movies(tmdb_id)
        response = movie.info()

        self.tmdb_id = tmdb_id
        self.title = movie.title
        self.vote_average = movie.vote_average
        self.watched = False
*snip*
Run Code Online (Sandbox Code Playgroud)

这一切都很好,直到我想测试它而不依赖于 TMDb 的实际连接:

测试电影.py

import pytest

import movie
from fake_tmdbsimple import FakeTmdbsimple

@pytest.fixture
def testMovie(mocker):
    mocker.patch.dict('sys.modules', {'tmdbsimple': FakeTmdbsimple()})
    return movie.Movie('1')

def test_creation_of_Movie(testMovie):
    assert isinstance(testMovie, movie.Movie)

def test_properties_of_Movie(testMovie):
    assert testMovie.tmdb_id == 1
    assert testMovie.title == 'Example Movie'
    assert testMovie.vote_average == 10
    assert testMovie.watched == False
Run Code Online (Sandbox Code Playgroud)

fake_tmdbsimple.py …

python mocking pytest

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

合并字典保留旧键和新值

我正在编写一个解析 RSS 提要的 Python 脚本。我想维护一个定期更新的提要条目字典。提要中不再存在的条目应被删除,新条目应获得默认值,并且以前看到的条目的值应保持不变。

我认为最好通过例子来解释:

>>> old = {
...     'a': 1,
...     'b': 2,
...     'c': 3
... }
>>> new = {
...     'c': 'x',
...     'd': 'y',
...     'e': 'z'
... }
>>> out = some_function(old, new)
>>> out
{'c': 3, 'd': 'y', 'e': 'z'}
Run Code Online (Sandbox Code Playgroud)

这是我目前的尝试:

def merge_preserving_old_values_and_new_keys(old, new):
       out = {}
       for k, v in new.items():
           out[k] = v
       for k, v in old.items():
           if k in out:
               out[k] = v
       return out
Run Code Online (Sandbox Code Playgroud)

这可行,但在我看来可能有更好或更聪明的方法。

编辑:如果您想测试您的功能: …

python dictionary

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

标签 统计

python ×2

css ×1

dictionary ×1

mocking ×1

pytest ×1

svg ×1