Ejemplo n.º 1
0
 def test_play_status_netradio(self):
     from defusedxml import cElementTree as ET
     res = ET.XML(sample_content('rx-v1030-netradio-response.xml'))
     self.assertTrue(rxv.RXV.safe_get(res, ["Playback_Info"]) == "Play")
     self.assertEqual('', rxv.RXV.safe_get(res, rxv.rxv.ARTIST_OPTIONS))
     self.assertEqual('Undertow',
                      rxv.RXV.safe_get(res, rxv.rxv.ALBUM_OPTIONS))
     self.assertEqual('Sober', rxv.RXV.safe_get(res, rxv.rxv.SONG_OPTIONS))
     self.assertEqual('NDR 2 (HH)',
                      rxv.RXV.safe_get(res, rxv.rxv.STATION_OPTIONS))
Ejemplo n.º 2
0
 def test_play_status_spotify(self):
     from defusedxml import cElementTree as ET
     res = ET.XML(sample_content('rx-v1030-spotify-response.xml'))
     self.assertTrue(rxv.RXV.safe_get(res, ["Playback_Info"]) == "Play")
     self.assertEqual('Lenny Kravitz',
                      rxv.RXV.safe_get(res, rxv.rxv.ARTIST_OPTIONS))
     self.assertEqual('It\'s Enough',
                      rxv.RXV.safe_get(res, rxv.rxv.ALBUM_OPTIONS))
     self.assertEqual('It\'s Enough',
                      rxv.RXV.safe_get(res, rxv.rxv.SONG_OPTIONS))
     self.assertEqual('', rxv.RXV.safe_get(res, rxv.rxv.STATION_OPTIONS))
Ejemplo n.º 3
0
 def test_play_status_tuner(self):
     from defusedxml import cElementTree as ET
     res = ET.XML(sample_content('rx-v1030-tuner-response.xml'))
     src_name = "Tuner"
     self.assertTrue(
         rxv.RXV.safe_get(res, ["Playback_Info"]) == "Play"
         or src_name == "Tuner")
     self.assertEqual('ROCK M', rxv.RXV.safe_get(res,
                                                 rxv.rxv.ARTIST_OPTIONS))
     self.assertEqual('RADIO & BOB!',
                      rxv.RXV.safe_get(res, rxv.rxv.ALBUM_OPTIONS))
     self.assertEqual('Black Stone Cherry - Burnin\'_',
                      rxv.RXV.safe_get(res, rxv.rxv.SONG_OPTIONS))
     self.assertEqual('RADIOBOB',
                      rxv.RXV.safe_get(res, rxv.rxv.STATION_OPTIONS))
Ejemplo n.º 4
0
def rxv_details(location):
    """Looks under given UPNP url, and checks if Yamaha amplituner lives there
       returns RxvDetails if yes, None otherwise"""
    try:
        res = cElementTree.XML(requests.get(location).content)
    except xml.etree.ElementTree.ParseError:
        return None
    url_base_el = res.find(URL_BASE_QUERY)
    if url_base_el is None:
        return None
    ctrl_url_local = res.find(CONTROL_URL_QUERY).text
    ctrl_url = urljoin(url_base_el.text, ctrl_url_local)
    unit_desc_url_local = res.find(UNITDESC_URL_QUERY).text
    unit_desc_url = urljoin(url_base_el.text, unit_desc_url_local)
    model_name = res.find(MODEL_NAME_QUERY).text
    friendly_name = res.find(FRIENDLY_NAME_QUERY).text

    return RxvDetails(ctrl_url, unit_desc_url, model_name, friendly_name)
Ejemplo n.º 5
0
Archivo: rxv.py Proyecto: syn2083/rxv
    def _request(self, command, request_text, zone_cmd=True):
        if zone_cmd:
            payload = Zone.format(request_text=request_text, zone=self._zone)
        else:
            payload = request_text

        request_text = YamahaCommand.format(command=command, payload=payload)
        try:
            res = self._session.post(self.ctrl_url,
                                     data=request_text,
                                     headers={"Content-Type": "text/xml"})
            # releases connection to the pool
            response = cElementTree.XML(res.content)
            if response.get("RC") != "0":
                logger.error("Request %s failed with %s", request_text,
                             res.content)
                raise ResponseException(res.content)
            return response
        except xml.etree.ElementTree.ParseError:
            logger.exception("Invalid XML returned for request %s: %s",
                             request_text, res.content)
            raise