def test_qvalue(): alice_no_qvalue = ContactHeader("Alice <sip:[email protected]>") alice1 = ContactHeader("Alice <sip:[email protected]>;q=1.0") assert QValue('1.0') == alice1.get_qvalue() alice1.set_qvalue(QValue('0.1')) assert QValue('0.1') == alice1.get_qvalue() assert QValue('0.13') == alice_no_qvalue.get_qvalue(default=QValue('0.13'))
def test_set_find(): hparams = HParams() hparams.set('expires', 3, 'Expires', '3') assert hparams.assemble() == 'Expires=3' hparams.set('q', QValue('0.1'), 'q', '0.1') assert hparams.assemble() == 'Expires=3;q=0.1' hparams.set_raw('MyCustomParam', None) assert hparams.assemble() == 'Expires=3;q=0.1;MyCustomParam' assert hparams.find('expires') == 3 assert hparams.find('Expires') == 3 assert hparams.find('q') == QValue('0.1') assert isinstance(hparams.find('q1'), HParamNotFound) assert hparams.find_raw('expires') == '3'
def test_find_raw_set(): hparams = HParams() hparams.set('expires', 3, 'Expires', '3') hparams.set('q', QValue('0.1'), 'q', '0.1') hparams.set_raw('MyCustomParam', None) assert hparams.find_raw('expires') == '3' assert isinstance(hparams.find_raw('q1'), HParamNotFound) assert hparams.find_raw('q') == '0.1' assert hparams.find_raw('mycustoMParam') is None
def test_set_param(): alice = ContactHeader("Alice <sip:[email protected]>") alice.set_param('expires', '30') assert alice.get_expires(None) == 30 alice.set_param('q', '0.1') assert alice.get_qvalue(None) == QValue('0.1') assert alice.get_expires(None) == 30 alice.set_param('myparam', 'Value') assert alice == ContactHeader( 'Alice <sip:[email protected]>;expires=30;q=0.1;myparam=Value') assert alice.get_param('MyParam') == 'Value'
def parse_param(param_name, param_value): if param_name == EXPIRES: try: return int(param_value) except ValueError: raise ContactHeaderError( f'Cannot parse expires param: value {param_value} is not int.' ) if param_name == Q: try: return QValue(param_value) except QValueError as e: raise ContactHeaderError(f'Cannot parse q param: {e}')
def test_set(): qval = QValue('0') assert '0.000' == qval.qvalue qval.set('1') assert '1' == qval.qvalue
def test_rebuild(value): qval1 = QValue(value) qval2 = QValue(qval1.qvalue) assert qval1 == qval2
def test_error(value): with pytest.raises(QValueError): QValue(value)
def test_comparison_ge(value1, value2): assert QValue(value2) >= QValue(value1)
def test_comparison_le(value1, value2): assert QValue(value1) <= QValue(value2)
def test_equal(value1, value2): assert QValue(value1) == QValue(value2)