Back sessions with It's Dangerous.
[mediagoblin.git] / mediagoblin / tools / common.py
index ea4541a8e18ec4d9be35829ea2bdb848eff3c350..34586611cd38a9c8c5172741af76080651022f57 100644 (file)
@@ -1,5 +1,5 @@
 # GNU MediaGoblin -- federated, autonomous media hosting
-# Copyright (C) 2011 Free Software Foundation, Inc
+# Copyright (C) 2011, 2012 MediaGoblin contributors.  See AUTHORS.
 #
 # This program is free software: you can redistribute it and/or modify
 # it under the terms of the GNU Affero General Public License as published by
 
 import sys
 
-DISPLAY_IMAGE_FETCHING_ORDER = [u'medium', u'original', u'thumb']
 
 global TESTS_ENABLED
 TESTS_ENABLED = False
 
+
 def import_component(import_string):
     """
     Import a module component defined by STRING.  Probably a method,
@@ -35,3 +35,39 @@ def import_component(import_string):
     module = sys.modules[module_name]
     func = getattr(module, func_name)
     return func
+
+
+def simple_printer(string):
+    """
+    Prints a string, but without an auto \n at the end.
+
+    Useful for places where we want to dependency inject for printing.
+    """
+    sys.stdout.write(string)
+    sys.stdout.flush()
+
+
+class CollectingPrinter(object):
+    """
+    Another printer object, this one useful for capturing output for
+    examination during testing or otherwise.
+
+    Use this like:
+
+      >>> printer = CollectingPrinter()
+      >>> printer("herp derp\n")
+      >>> printer("lollerskates\n")
+      >>> printer.combined_string
+      "herp derp\nlollerskates\n"
+    """
+    def __init__(self):
+        self.collection = []
+    
+    def __call__(self, string):
+        self.collection.append(string)
+
+    @property
+    def combined_string(self):
+        return u''.join(self.collection)
+
+