def graph(professor): scores = [] comments = Comment.objects.filter(professor=professor, responsibility__gt=0) for c in comments: scores.append( float(c.responsibility + c.personality + c.workload + c.difficulty) * 5) if len(scores) == 0: scores.append(0) if len(scores) == 1: scores.append(scores[0]) chart = Sparkline(scores, encoding='text') chart.color('0077CC') chart.size(450, 262) chart.marker('B', 'E6F2FA', 0, 0, 0) chart.line(1, 0, 0) chart.axes('y') if not settings.DEBUG: client = CamoClient(settings.CAMO_URL, key=settings.CAMO_KEY) url = client.image_url(chart.url) else: url = chart.url return url
def graph(professor): scores = [] comments = Comment.objects.filter( professor=professor, responsibility__gt=0) for c in comments: scores.append(float(c.responsibility+c.personality + c.workload+c.difficulty)*5) if len(scores) == 0: scores.append(0) if len(scores) == 1: scores.append(scores[0]) chart = Sparkline(scores, encoding='text') chart.color('0077CC') chart.size(450, 262) chart.marker('B', 'E6F2FA', 0, 0, 0) chart.line(1, 0, 0) chart.axes('y') if not settings.DEBUG: client = CamoClient(settings.CAMO_URL, key=settings.CAMO_KEY) url = client.image_url(chart.url) else: url = chart.url return url
def test_parses_html(self): client = CamoClient("https://fakecdn.org/", key="hello") html = ('<img src="http://example.net/images/hahafunny.jpg" />' '<img src="https://otherexample/moreserious.png" />' '<img src="//example.net/no_http.jpg" />' '<img src=" http://example.net/leading_space.jpg" />' '<img src=http://example.net/mising_quotes.jpg />' '<img src="ftp://example.net/ftp_image.jpg" />' '<img src="/images/hahafunny.jpg">') parsed = ( '<img src="https://fakecdn.org/735030fa488e1866b4302ac611c075d541a' '773e3/687474703a2f2f6578616d706c652e6e65742f696d616765732f6861686' '166756e6e792e6a7067">' '<img src="https://fakecdn.org/c81915f5756fad02cfae7d07e359624dae8' '77667/68747470733a2f2f6f746865726578616d706c652f6d6f7265736572696' 'f75732e706e67">' '<img src="https://fakecdn.org/1d5de168888358e62b7c2f850265c5bfb43' 'e46c3/2f2f6578616d706c652e6e65742f6e6f5f687474702e6a7067">' '<img src="https://fakecdn.org/f4837f9cd17f391dd4c78e49f7b57934f69' '66f7c/20687474703a2f2f6578616d706c652e6e65742f6c656164696e675f737' '06163652e6a7067">' '<img src="https://fakecdn.org/d4ef06afe02debfdcbce1b1b078666e9187' '32793/687474703a2f2f6578616d706c652e6e65742f6d6973696e675f71756f7' '465732e6a7067">' '<img src="https://fakecdn.org/46bb6a3963ac29bd9c1587f2f533dad926c' '82330/6674703a2f2f6578616d706c652e6e65742f6674705f696d6167652e6a7' '067">' '<img src="https://fakecdn.org/17c855d7008b1307d277d725cb045b0fc0e' '23ea7/2f696d616765732f6861686166756e6e792e6a7067">') self.assertEqual(client.parse_html(html), parsed)
def test_trailing_slash(self): client = CamoClient("https://fakecdn.org/", key="hello") self.assertEqual( client.image_url("http://example.net/images/hahafunny.jpg"), 'https://fakecdn.org/735030fa488e1866b4302ac611c075d541a773e3/6874' '74703a2f2f6578616d706c652e6e65742f696d616765732f6861686166756e6e7' '92e6a7067', )
def test_unmarkedup_text(self): client = CamoClient("https://fakecdn.org/", key="hello") text = """butts""" self.assertEqual(client.parse_html(text), text)
def test_ignores_relative(self): client = CamoClient("https://fakecdn.org/", key="hello") html = """<p><img src="/images/hahafunny.jpg"></p>""" self.assertEqual(client.parse_html(html), html)
def test_parses_html(self): client = CamoClient("https://fakecdn.org/", key="hello") html = """<img src="http://example.net/images/hahafunny.jpg" /><img src="https://otherexample/moreserious.png" />""" parsed = """<img src="https://fakecdn.org/735030fa488e1866b4302ac611c075d541a773e3/687474703a2f2f6578616d706c652e6e65742f696d616765732f6861686166756e6e792e6a7067">"""\ """<img src="https://fakecdn.org/c81915f5756fad02cfae7d07e359624dae877667/68747470733a2f2f6f746865726578616d706c652f6d6f7265736572696f75732e706e67">""" self.assertEqual(client.parse_html(html), parsed)
def test_trailing_slash(self): client = CamoClient("https://fakecdn.org/", key="hello") self.assertEqual( client.image_url("http://example.net/images/hahafunny.jpg"), 'https://fakecdn.org/735030fa488e1866b4302ac611c075d541a773e3/687474703a2f2f6578616d706c652e6e65742f696d616765732f6861686166756e6e792e6a7067' )
def test_ignores_already_hosted(self): client = CamoClient("https://fakecdn.org/", key="hello") html = '<p><img src="https://fakecdn.org/images/hahafunny.jpg"></p>' self.assertEqual(client.parse_html(html), html)
def test_parses_html_for_css_links(self): client = CamoClient("https://fakecdn.org/", key=b"hello") html = """<link rel="stylesheet" href="http://www.csszengarden.com/214/214.css" />""" parsed = """<link rel="stylesheet" href="https://fakecdn.org/0d5370557ac9428fdd6964cf0351b68690a88721/687474703a2f2f7777772e6373737a656e67617264656e2e636f6d2f3231342f3231342e637373">""" self.assertEqual(client.parse_html(html), parsed)