tor-browser

The Tor Browser
git clone https://git.dasho.dev/tor-browser.git
Log | Files | Refs | README | LICENSE

test_flags.py (1249B)


      1 # -*- coding: utf-8 -*-
      2 from hyperframe.frame import (
      3    Flags, Flag,
      4 )
      5 import pytest
      6 
      7 
      8 class TestFlags:
      9    def test_add(self):
     10        flags = Flags([Flag("VALID_FLAG", 0x00)])
     11        assert not flags
     12 
     13        flags.add("VALID_FLAG")
     14        flags.add("VALID_FLAG")
     15        assert "VALID_FLAG" in flags
     16        assert list(flags) == ["VALID_FLAG"]
     17        assert len(flags) == 1
     18 
     19    def test_remove(self):
     20        flags = Flags([Flag("VALID_FLAG", 0x00)])
     21        flags.add("VALID_FLAG")
     22 
     23        flags.discard("VALID_FLAG")
     24        assert "VALID_FLAG" not in flags
     25        assert list(flags) == []
     26        assert len(flags) == 0
     27 
     28        # discarding elements not in the set should not throw an exception
     29        flags.discard("END_STREAM")
     30 
     31    def test_validation(self):
     32        flags = Flags([Flag("VALID_FLAG", 0x00)])
     33        flags.add("VALID_FLAG")
     34        with pytest.raises(ValueError):
     35            flags.add("INVALID_FLAG")
     36 
     37    def test_repr(self):
     38        flags = Flags([Flag("VALID_FLAG", 0x00), Flag("OTHER_FLAG", 0x01)])
     39        assert repr(flags) == "[]"
     40        flags.add("VALID_FLAG")
     41        assert repr(flags) == "['VALID_FLAG']"
     42        flags.add("OTHER_FLAG")
     43        assert repr(flags) == "['OTHER_FLAG', 'VALID_FLAG']"