Browse files

Tweaked test added in r16873 so it also works with Oracle.

* Changed invalid fixture from trying to insert a NULL value in a
  null=False CharField to try with a DateTimeField instead because our
  Oracle backend allows NULLs for CharFields than can be blank and that
  insert wouldn't generate an error.

* cx_Oracle raises a
  `DatabaseError: Could not load fixtures.Article(pk=1): ORA-01407: cannot update ("USER_DEFAULT"."FIXTURES_ARTICLE"."PUB_DATE") to NULL'`
  instead of an IntegrityError like the rest of the DB-API drivers we
  support, changed the error message we test for to start simply with
  'Error' to catch both messages.

  We might want to consider converting DatabaseError to IntegrityError
  in the backend when the error code is ORA-1407.

git-svn-id: bcc190cf-cafb-0310-a4f2-bffc1f526a37
  • Loading branch information...
1 parent ab72e6b commit da5c766dbbff0b85d8782c4384e44bac804afc53 @ramiro ramiro committed Oct 17, 2011
Showing with 3 additions and 3 deletions.
  1. +2 −2 tests/modeltests/fixtures/fixtures/invalid.json
  2. +1 −1 tests/modeltests/fixtures/
4 tests/modeltests/fixtures/fixtures/invalid.json
@@ -3,8 +3,8 @@
"pk": "1",
"model": "fixtures.article",
"fields": {
- "headline": null,
- "pub_date": "2006-06-16 13:00:00"
+ "headline": "Breaking news",
+ "pub_date": null
2 tests/modeltests/fixtures/
@@ -269,7 +269,7 @@ def test_loaddata_error_message(self):
new_io = StringIO.StringIO()
management.call_command('loaddata', 'invalid.json', verbosity=0, stderr=new_io, commit=False)
output = new_io.getvalue().strip().split('\n')
- self.assertRegexpMatches(output[-1], "IntegrityError: Could not load fixtures.Article\(pk=1\): .*$")
+ self.assertRegexpMatches(output[-1], "Error: Could not load fixtures.Article\(pk=1\): .*$")
def test_loading_using(self):
# Load db fixtures 1 and 2. These will load using the 'default' database identifier explicitly

0 comments on commit da5c766

Please sign in to comment.