summaryrefslogtreecommitdiff
path: root/lib/subunit/python/testtools/content_type.py
diff options
context:
space:
mode:
Diffstat (limited to 'lib/subunit/python/testtools/content_type.py')
-rw-r--r--lib/subunit/python/testtools/content_type.py30
1 files changed, 30 insertions, 0 deletions
diff --git a/lib/subunit/python/testtools/content_type.py b/lib/subunit/python/testtools/content_type.py
new file mode 100644
index 0000000000..e70fa76ec8
--- /dev/null
+++ b/lib/subunit/python/testtools/content_type.py
@@ -0,0 +1,30 @@
+# Copyright (c) 2009 Jonathan M. Lange. See LICENSE for details.
+
+"""ContentType - a MIME Content Type."""
+
+
+class ContentType(object):
+ """A content type from http://www.iana.org/assignments/media-types/
+
+ :ivar type: The primary type, e.g. "text" or "application"
+ :ivar subtype: The subtype, e.g. "plain" or "octet-stream"
+ :ivar parameters: A dict of additional parameters specific to the
+ content type.
+ """
+
+ def __init__(self, primary_type, sub_type, parameters=None):
+ """Create a ContentType."""
+ if None in (primary_type, sub_type):
+ raise ValueError("None not permitted in %r, %r" % (
+ primary_type, sub_type))
+ self.type = primary_type
+ self.subtype = sub_type
+ self.parameters = parameters or {}
+
+ def __eq__(self, other):
+ if type(other) != ContentType:
+ return False
+ return self.__dict__ == other.__dict__
+
+ def __repr__(self):
+ return "%s/%s params=%s" % (self.type, self.subtype, self.parameters)