-
    I create a "Testing" folder where all the test data will go.
-
    !record {model: document.directory, id: dir_tests }:
        name: 'Testing (will be deleted!)'
        parent_id: dir_root
-
    I create an attachment into the root folder (w. empty fields, test that
    defaults work)
-
    !record {model: ir.attachment, id: file_test1 }:
        name: Test file.txt
-
    I delete the attachment from the root folder
-
    !python {model: ir.attachment}: |
     self.unlink(cr, uid, [ref('file_test1')])
-
    I create an attachment into the Testing folder.
-
    !record {model: ir.attachment, id: file_test2 }:
        name: Test file 2
        parent_id: dir_tests
-
    I update the attachment with data, namely "abcd"
-
    !record {model: ir.attachment, id: file_test2 }:
        datas: "YWJjZA==\n"
-
    I test that the datas of the attachment are correct
-
    !assert {model: ir.attachment, id: file_test2 }:
        - datas == "YWJjZA==\n"
        - file_size == 4
-
    I rename the attachment.
-
    !record {model: ir.attachment, id: file_test2 }:
        name: Test renamed 2
-
    I search the testing folder for attachments.
-
    !python {model: ir.attachment}: |
        ids = self.search(cr, uid, [('parent_id.name','=', 'Testing (will be deleted!)'), ('name','=','Test renamed 2')])
        assert ids == [ ref("file_test2") ], ids
-
    I create an attachment to a 3rd resource, eg. a res.country
-
    !record {model: ir.attachment, id: attach_3rd }:
        name: 'Country attachment.txt'
        parent_id: dir_tests
        datas: "Q291bnRyeSBhdHRhY2htZW50IGNvbnRlbnQ=\n"
        res_model: res.country
        res_id: !eval ref("base.za")
-
    I search for the res.country attachment
-
    !python {model: ir.attachment}: |
        ids = self.search(cr, uid, [('res_model', '=', 'res.country'), ('res_id', '=', ref("base.za"))])
        assert ids == [ ref("attach_3rd")], ids
-
    I test that I can't create duplicate directories (even when duplicates are hidden by a record rule)
- 
    !python {model: document.directory}: |
        duplicate_detected = False
        from openerp.osv.osv import except_osv
        try:
            demo_uid = ref('base.user_demo')
            dir_vals = {
                'name': 'Testing (will be deleted!)',
                'parent_id': ref('document.dir_root')
            }
            new_dir_id = self.create(cr, demo_uid, dir_vals, context=None)
            self.unlink(cr, uid, [new_dir_id], context=None)
        except except_osv, e:
            duplicate_detected = e.value == u'Directory name must be unique!'
        assert duplicate_detected is True, 'Failed to detect duplicate directory'
-
    I delete the attachments
-
    !python {model: ir.attachment}: |
     self.unlink(cr, uid, [ref('file_test2')])
     self.unlink(cr, uid, [ref('attach_3rd')])
-
    I delete the tests folder
-
    !python {model: document.directory}: |
      self.unlink(cr, uid, [ref('dir_tests')])
