forked from WhyNotHugo/python-barcode
-
Notifications
You must be signed in to change notification settings - Fork 0
Expand file tree
/
Copy pathtest_ean.py
More file actions
53 lines (35 loc) · 1.57 KB
/
Copy pathtest_ean.py
File metadata and controls
53 lines (35 loc) · 1.57 KB
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
from __future__ import annotations
import sys
import pytest
from barcode.ean import EAN13
def test_ean_checksum_generated() -> None:
ean = EAN13("842167143322") # input has 12 digits
assert ean.calculate_checksum() == 5
assert ean.ean == "8421671433225"
def test_ean_checksum_zeroed() -> None:
ean = EAN13("842167143322", no_checksum=True) # input has 12 digits
assert ean.calculate_checksum() == 5
assert ean.ean == "8421671433220"
def test_ean_checksum_supplied_and_generated() -> None:
ean = EAN13("8421671433225") # input has 13 digits
assert ean.calculate_checksum() == 5
assert ean.ean == "8421671433225"
def test_ean_checksum_supplied_and_matching() -> None:
ean = EAN13("8421671433225", no_checksum=True) # input has 13 digits
assert ean.calculate_checksum() == 5
assert ean.ean == "8421671433225"
def test_ean_checksum_supplied_and_different() -> None:
ean = EAN13("8421671433229", no_checksum=True) # input has 13 digits
assert ean.calculate_checksum() == 5
assert ean.ean == "8421671433229"
def test_ean_checksum_generated_placeholder() -> None:
ean = EAN13("977114487500X") # input has 13 digits
assert ean.calculate_checksum() == 7
assert ean.ean == "9771144875007"
@pytest.mark.skipif(sys.platform == "win32", reason="no /dev/null")
def test_ean_checksum_supplied_placeholder() -> None:
ean = EAN13("977114487500X", no_checksum=True) # input has 13 digits
assert ean.calculate_checksum() == 7
assert ean.ean == "9771144875000"
with open("/dev/null", "wb") as f:
ean.write(f)