def test_numericvalue():
    """Test adding numeric data to service."""
    dt = datetime(2015, 1, 1, 0, 0, 0)
    doc = ServiceDocument('myid', timestamp=dt)
    doc.add_numericvalue('val1', 1234)
    doc.add_numericvalue('val2', 12.34)
    doc.add_numericvalue('val3', Decimal("0.1"))
    doc.add_numericvalue('val4', Decimal("0.1") + Decimal("0.2"))
    doc.add_numericvalue('val5', 1234, desc="a desc")
    doc.add_numericvalue('val6', long_type(1234))

    assert doc.to_xml() == \
        '<serviceupdate xmlns="http://sls.cern.ch/SLS/XML/update">' \
        '<id>myid</id>' \
        '<status>available</status>' \
        '<timestamp>2015-01-01T00:00:00</timestamp>' \
        '<data>' \
        '<numericvalue name="val1">1234</numericvalue>' \
        '<numericvalue name="val2">12.34</numericvalue>' \
        '<numericvalue name="val3">0.1</numericvalue>' \
        '<numericvalue name="val4">0.3</numericvalue>' \
        '<numericvalue desc="a desc" name="val5">1234</numericvalue>' \
        '<numericvalue name="val6">1234</numericvalue>' \
        '</data>' \
        '</serviceupdate>'
    assert validate_xsd(doc.to_xml())
def test_creation_simple():
    """Test creation of a service document."""
    doc = ServiceDocument('myserviceid')
    assert doc.service_id == 'myserviceid'
    assert isinstance(doc.timestamp, datetime)
    assert doc.status == Status.available

    assert validate_xsd(doc.to_xml())
    assert doc.to_xml() == \
        '<serviceupdate xmlns="http://sls.cern.ch/SLS/XML/update">' \
        '<id>myserviceid</id>' \
        '<status>available</status>' \
        '<timestamp>{0}</timestamp>' \
        '</serviceupdate>'.format(doc.timestamp.isoformat())

    dt = datetime(2015, 1, 1, 0, 0, 0)
    doc = ServiceDocument('anotherid', timestamp=dt,
                          status=Status.degraded)

    assert doc.to_xml() == \
        '<serviceupdate xmlns="http://sls.cern.ch/SLS/XML/update">' \
        '<id>anotherid</id>' \
        '<status>degraded</status>' \
        '<timestamp>2015-01-01T00:00:00</timestamp>' \
        '</serviceupdate>'
    assert validate_xsd(doc.to_xml())
Ejemplo n.º 3
0
def test_creation_simple():
    """Test creation of a service document."""
    doc = ServiceDocument('myserviceid')
    assert doc.service_id == 'myserviceid'
    assert isinstance(doc.timestamp, datetime)
    assert doc.status == Status.available

    assert validate_xsd(doc.to_xml())
    assert doc.to_xml() == \
        '<serviceupdate xmlns="http://sls.cern.ch/SLS/XML/update">' \
        '<id>myserviceid</id>' \
        '<status>available</status>' \
        '<timestamp>{0}</timestamp>' \
        '</serviceupdate>'.format(doc.timestamp.isoformat())

    dt = datetime(2015, 1, 1, 0, 0, 0)
    doc = ServiceDocument('anotherid', timestamp=dt, status=Status.degraded)

    assert doc.to_xml() == \
        '<serviceupdate xmlns="http://sls.cern.ch/SLS/XML/update">' \
        '<id>anotherid</id>' \
        '<status>degraded</status>' \
        '<timestamp>2015-01-01T00:00:00</timestamp>' \
        '</serviceupdate>'
    assert validate_xsd(doc.to_xml())
Ejemplo n.º 4
0
def test_numericvalue():
    """Test adding numeric data to service."""
    dt = datetime(2015, 1, 1, 0, 0, 0)
    doc = ServiceDocument('myid', timestamp=dt)
    doc.add_numericvalue('val1', 1234)
    doc.add_numericvalue('val2', 12.34)
    doc.add_numericvalue('val3', Decimal("0.1"))
    doc.add_numericvalue('val4', Decimal("0.1") + Decimal("0.2"))
    doc.add_numericvalue('val5', 1234, desc="a desc")
    doc.add_numericvalue('val6', long_type(1234))

    assert doc.to_xml() == \
        '<serviceupdate xmlns="http://sls.cern.ch/SLS/XML/update">' \
        '<id>myid</id>' \
        '<status>available</status>' \
        '<timestamp>2015-01-01T00:00:00</timestamp>' \
        '<data>' \
        '<numericvalue name="val1">1234</numericvalue>' \
        '<numericvalue name="val2">12.34</numericvalue>' \
        '<numericvalue name="val3">0.1</numericvalue>' \
        '<numericvalue name="val4">0.3</numericvalue>' \
        '<numericvalue desc="a desc" name="val5">1234</numericvalue>' \
        '<numericvalue name="val6">1234</numericvalue>' \
        '</data>' \
        '</serviceupdate>'
    assert validate_xsd(doc.to_xml())
Ejemplo n.º 5
0
def test_creation_simple():
    """Test creation of a service document."""
    doc = ServiceDocument('myserviceid')
    assert doc.service_id == 'myserviceid'
    assert isinstance(doc.timestamp, datetime)
    assert doc.availability == 100

    print(doc.to_xml())

    assert doc.to_xml() == \
        '<serviceupdate xmlns="http://sls.cern.ch/SLS/XML/update">' \
        '<id>myserviceid</id>' \
        '<availability>100</availability>' \
        '<timestamp>{0}</timestamp>' \
        '</serviceupdate>'.format(doc.timestamp.isoformat())

    dt = datetime(2015, 1, 1, 0, 0, 0)
    doc = ServiceDocument('anotherid', timestamp=dt,
                          availability=99)

    assert doc.to_xml() == \
        '<serviceupdate xmlns="http://sls.cern.ch/SLS/XML/update">' \
        '<id>anotherid</id>' \
        '<availability>99</availability>' \
        '<timestamp>2015-01-01T00:00:00</timestamp>' \
        '</serviceupdate>'
def test_creation_attrs():
    """Test non-mandatory attributes."""
    dt = datetime(2015, 1, 1, 0, 0, 0)
    doc = ServiceDocument(
        'myid',
        timestamp=dt,
        availabilitydesc='My description',
        contact='*****@*****.**',
        webpage='http://example.org',
        availabilityinfo='Extra info',
    )

    assert doc.to_xml() == \
        '<serviceupdate xmlns="http://sls.cern.ch/SLS/XML/update">' \
        '<id>myid</id>' \
        '<status>available</status>' \
        '<timestamp>2015-01-01T00:00:00</timestamp>' \
        '<availabilitydesc>My description</availabilitydesc>' \
        '<contact>[email protected]</contact>' \
        '<webpage>http://example.org</webpage>' \
        '<availabilityinfo>Extra info</availabilityinfo>' \
        '</serviceupdate>'
    assert validate_xsd(doc.to_xml())
Ejemplo n.º 7
0
def test_creation_attrs():
    """Test non-mandatory attributes."""
    dt = datetime(2015, 1, 1, 0, 0, 0)
    doc = ServiceDocument(
        'myid',
        timestamp=dt,
        availabilitydesc='My description',
        contact='*****@*****.**',
        webpage='http://example.org',
        availabilityinfo='Extra info',
    )

    assert doc.to_xml() == \
        '<serviceupdate xmlns="http://sls.cern.ch/SLS/XML/update">' \
        '<id>myid</id>' \
        '<status>available</status>' \
        '<timestamp>2015-01-01T00:00:00</timestamp>' \
        '<availabilitydesc>My description</availabilitydesc>' \
        '<contact>[email protected]</contact>' \
        '<webpage>http://example.org</webpage>' \
        '<availabilityinfo>Extra info</availabilityinfo>' \
        '</serviceupdate>'
    assert validate_xsd(doc.to_xml())
Ejemplo n.º 8
0
def test_availablity_to_status():
    """Test creation of a service document."""
    dt = datetime(2015, 1, 1, 0, 0, 0)
    doc = ServiceDocument('anotherid', timestamp=dt, availability=99)
    assert doc.status == Status.available
    assert doc.availability == 99
    assert validate_xsd(doc.to_xml())

    doc = ServiceDocument('anotherid', timestamp=dt, availability=60)
    assert doc.status == Status.degraded
    assert doc.availability == 60
    assert validate_xsd(doc.to_xml())

    doc = ServiceDocument('anotherid', timestamp=dt, availability=20)
    assert doc.status == Status.unavailable
    assert doc.availability == 20
    assert validate_xsd(doc.to_xml())

    with pytest.raises(AssertionError):
        doc = ServiceDocument('anid',
                              timestamp=dt,
                              status=Status.unavailable,
                              availability=20)

    doc = ServiceDocument('anotherid', timestamp=dt, status='available')
    assert doc.status == Status.available
    assert doc.availability == 100
    assert validate_xsd(doc.to_xml())

    doc = ServiceDocument('anotherid', timestamp=dt, status='degraded')
    assert doc.status == Status.degraded
    assert doc.availability == 50
    assert validate_xsd(doc.to_xml())

    doc = ServiceDocument('anotherid', timestamp=dt, status='unavailable')
    assert doc.status == Status.unavailable
    assert doc.availability == 0
    assert validate_xsd(doc.to_xml())
def test_availablity_to_status():
    """Test creation of a service document."""
    dt = datetime(2015, 1, 1, 0, 0, 0)
    doc = ServiceDocument('anotherid', timestamp=dt, availability=99)
    assert doc.status == Status.available
    assert doc.availability == 99
    assert validate_xsd(doc.to_xml())

    doc = ServiceDocument('anotherid', timestamp=dt, availability=60)
    assert doc.status == Status.degraded
    assert doc.availability == 60
    assert validate_xsd(doc.to_xml())

    doc = ServiceDocument('anotherid', timestamp=dt, availability=20)
    assert doc.status == Status.unavailable
    assert doc.availability == 20
    assert validate_xsd(doc.to_xml())

    with pytest.raises(AssertionError):
        doc = ServiceDocument('anid', timestamp=dt, status=Status.unavailable,
                              availability=20)

    doc = ServiceDocument('anotherid', timestamp=dt, status='available')
    assert doc.status == Status.available
    assert doc.availability == 100
    assert validate_xsd(doc.to_xml())

    doc = ServiceDocument('anotherid', timestamp=dt, status='degraded')
    assert doc.status == Status.degraded
    assert doc.availability == 50
    assert validate_xsd(doc.to_xml())

    doc = ServiceDocument('anotherid', timestamp=dt, status='unavailable')
    assert doc.status == Status.unavailable
    assert doc.availability == 0
    assert validate_xsd(doc.to_xml())