forked from suds-community/suds
-
Notifications
You must be signed in to change notification settings - Fork 0
/
TODO.txt
2374 lines (2152 loc) · 115 KB
/
TODO.txt
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
182
183
184
185
186
187
188
189
190
191
192
193
194
195
196
197
198
199
200
201
202
203
204
205
206
207
208
209
210
211
212
213
214
215
216
217
218
219
220
221
222
223
224
225
226
227
228
229
230
231
232
233
234
235
236
237
238
239
240
241
242
243
244
245
246
247
248
249
250
251
252
253
254
255
256
257
258
259
260
261
262
263
264
265
266
267
268
269
270
271
272
273
274
275
276
277
278
279
280
281
282
283
284
285
286
287
288
289
290
291
292
293
294
295
296
297
298
299
300
301
302
303
304
305
306
307
308
309
310
311
312
313
314
315
316
317
318
319
320
321
322
323
324
325
326
327
328
329
330
331
332
333
334
335
336
337
338
339
340
341
342
343
344
345
346
347
348
349
350
351
352
353
354
355
356
357
358
359
360
361
362
363
364
365
366
367
368
369
370
371
372
373
374
375
376
377
378
379
380
381
382
383
384
385
386
387
388
389
390
391
392
393
394
395
396
397
398
399
400
401
402
403
404
405
406
407
408
409
410
411
412
413
414
415
416
417
418
419
420
421
422
423
424
425
426
427
428
429
430
431
432
433
434
435
436
437
438
439
440
441
442
443
444
445
446
447
448
449
450
451
452
453
454
455
456
457
458
459
460
461
462
463
464
465
466
467
468
469
470
471
472
473
474
475
476
477
478
479
480
481
482
483
484
485
486
487
488
489
490
491
492
493
494
495
496
497
498
499
500
501
502
503
504
505
506
507
508
509
510
511
512
513
514
515
516
517
518
519
520
521
522
523
524
525
526
527
528
529
530
531
532
533
534
535
536
537
538
539
540
541
542
543
544
545
546
547
548
549
550
551
552
553
554
555
556
557
558
559
560
561
562
563
564
565
566
567
568
569
570
571
572
573
574
575
576
577
578
579
580
581
582
583
584
585
586
587
588
589
590
591
592
593
594
595
596
597
598
599
600
601
602
603
604
605
606
607
608
609
610
611
612
613
614
615
616
617
618
619
620
621
622
623
624
625
626
627
628
629
630
631
632
633
634
635
636
637
638
639
640
641
642
643
644
645
646
647
648
649
650
651
652
653
654
655
656
657
658
659
660
661
662
663
664
665
666
667
668
669
670
671
672
673
674
675
676
677
678
679
680
681
682
683
684
685
686
687
688
689
690
691
692
693
694
695
696
697
698
699
700
701
702
703
704
705
706
707
708
709
710
711
712
713
714
715
716
717
718
719
720
721
722
723
724
725
726
727
728
729
730
731
732
733
734
735
736
737
738
739
740
741
742
743
744
745
746
747
748
749
750
751
752
753
754
755
756
757
758
759
760
761
762
763
764
765
766
767
768
769
770
771
772
773
774
775
776
777
778
779
780
781
782
783
784
785
786
787
788
789
790
791
792
793
794
795
796
797
798
799
800
801
802
803
804
805
806
807
808
809
810
811
812
813
814
815
816
817
818
819
820
821
822
823
824
825
826
827
828
829
830
831
832
833
834
835
836
837
838
839
840
841
842
843
844
845
846
847
848
849
850
851
852
853
854
855
856
857
858
859
860
861
862
863
864
865
866
867
868
869
870
871
872
873
874
875
876
877
878
879
880
881
882
883
884
885
886
887
888
889
890
891
892
893
894
895
896
897
898
899
900
901
902
903
904
905
906
907
908
909
910
911
912
913
914
915
916
917
918
919
920
921
922
923
924
925
926
927
928
929
930
931
932
933
934
935
936
937
938
939
940
941
942
943
944
945
946
947
948
949
950
951
952
953
954
955
956
957
958
959
960
961
962
963
964
965
966
967
968
969
970
971
972
973
974
975
976
977
978
979
980
981
982
983
984
985
986
987
988
989
990
991
992
993
994
995
996
997
998
999
1000
PRIORITIZED:
=================================================
(21.12.2011.)
(+) * (Jurko) Prepare for the initial forked project release.
(+) * Add todo list.
(+) * Document how to access this forked project's development sources &
(+) released files.
(+) * Jurko's Mercurial repository hosted at BitBucket and accessible
(+) from 'http://bitbucket.org/jurko/suds'.
(+) * Already documented in README.
(+) * Add more details to HACKING.
(+) * Suds library Python 3 patches hosted in a Mercurial patch queue
(+) repository at BitBucket and accessible from
(+) 'http://bitbucket.org/bernh/suds-python-3-patches'.
(+) * Already documented in HACKING.
(+) * (Jurko) Minor stylistic changes & typo corrections.
(+) * Code.
(+) * 'tranparent' --> 'transparent'.
(+) * 'if tns' --> 'if tns'.
(+) * 'docuemnt' --> 'document'.
(+) * '('restriction', 'any', 'list',)' --> '('restriction', 'any',
(+) 'list')'.
(+) * And other unnecessary trailing tuple commas.
(+) * 'Qualfied' --> 'Qualified'.
(+) * 'Resolveds' --> 'Resolves'.
(+) * 'describe a port and it's list of methods' --> 'describe a port
(+) and its list of methods'.
(+) * 'dependancies' --> 'dependencies'.
(+) * 'imcoming' --> 'incoming'.
(+) * 'relavent' --> 'relevant'.
(+) * 'inidcat' --> 'indicat'.
(22.12.2011.)
(+) * (Jurko) Prepare for the initial forked project release.
(+) * Rename top level project documentation files to use the .txt extension
(+) to make them friendlier to Windows users.
(+) * Research release procedure.
(+) * Open PyPI account.
(+) * How to prepare a source distribution package.
(+) * Change author information.
(+) * Include tests.
(+) * Include all the top-level documentation files.
(+) * 'README'.
(+) * 'LICENSE'.
(+) * 'HACKING'.
(+) * 'TODO'.
(+) * Note the original project author in the package description.
(+) * Include correct license information.
(+) * See what the difference between author and maintainer
(+) information is and where it can be seen.
(+) * Try using 'setuptools_hg' to simplify specifying the project
(+) sources.
(+) * Failed when used under Python 3.
(+) * How to upload the prepared distribution packages.
(+) * Should upload a source distribution only.
(23.12.2011.)
(+) * (Jurko) Prepare for the initial forked project release.
(+) * Research release procedure.
(+) * How to upload the prepared distribution packages.
(+) * PyPI.
(24.12.2011.)
(+) * (Jurko) Prepare for the initial forked project release.
(+) * Research release procedure.
(+) * How to upload the prepared distribution packages.
(+) * BitBucket.
(+) * Document the project's official download URL.
(+) * Document how to access this forked project's development sources &
(+) released files.
(+) * Released project packages accessible from PyPI & BitBucket.
(+) * Installing the project using distribute or pip.
(+) * Document release procedure.
(+) * Version identification.
(+) * Remove the '(development)' suffix for official release builds.
(+) * Format '<base-suds-version> jurko #', e.g. '0.4.1 jurko 1'.
(+) * Tag in Hg.
(+) * Name the tag like 'release-<version-info>', e.g.
(+) 'release-0.4.1 jurko 1'.
(+) * Prepare official releases based only on tagged commits.
(+) * Prepare source distribution package, register the new release
(+) at PyPI and upload the prepared source package.
(+) * Run 'setup.py sdist register upload'.
(+) * Upload the prepared source package to the project site.
(+) * Archive the prepared source release locally if needed.
(+) * Next development version identification.
(+) * Bump up the forked project version counter.
(+) * Add back the '(development)' suffix.
(+) * Commit all local changes.
(+) * (Jurko) Constructing a SOAP request containing data stored in a sequence
(+) inside a choice.
(+) * Test scenario (syntax not precise).
(+) <choice>
(+) <element "a" - string/>
(+) <element "s">
(+) <sequence>
(+) <element "s1" - string/>
(+) <element "s2" - string/>
(+) </sequence>
(+) </element>
(+) </choice>
(+) * When 's' is None and 'a' is not - 'a' should be used.
(+) * When 'a' is None and 's' is not - 's' should be used.
(+) * When 's' is used, all of its child elements should be used independent
(+) of whether they are None or not.
(+) * Add related test.
(+) * (Jurko) Prepare the '0.4.1 jurko 1' release.
(+) * Follow the documented release procedure.
(+) * Update version information.
(+) * Tag in Hg.
(+) * Upload the source package.
(+) * Project site.
(+) * PyPI.
(+) * (Jurko) Fix getting a suds.client object's string representation when the
(+) client is initialized with the following WSDL. Calling 'str(client)'
(+) reports 'IndexError: list index out of range'.
(+) * WSDL.
(+) <?xml version='1.0' encoding='UTF-8'?>
(+) <wsdl:definitions targetNamespace="my-namespace"
(+) xmlns:wsdl="http://schemas.xmlsoap.org/wsdl/"
(+) xmlns:ns="my-namespace"
(+) xmlns:soap="http://schemas.xmlsoap.org/wsdl/soap/">
(+) <wsdl:types>
(+) <xsd:schema targetNamespace="my-namespace"
(+) elementFormDefault="qualified"
(+) attributeFormDefault="unqualified"
(+) xmlns:xsd="http://www.w3.org/2001/XMLSchema">
(+) <xsd:element name="Elemento">
(+) <xsd:complexType>
(+) <xsd:sequence>
(+) <xsd:element name="x1" type="xsd:string" />
(+) <xsd:element name="x2">
(+) <xsd:complexType>
(+) <xsd:choice>
(+) <xsd:element name="u1" type="xsd:string" />
(+) <xsd:element name="u2" type="xsd:string" />
(+) <xsd:element name="u3" type="xsd:string" />
(+) </xsd:choice>
(+) </xsd:complexType>
(+) </xsd:element>
(+) <xsd:element name="x3" type="xsd:string" />
(+) </xsd:sequence>
(+) </xsd:complexType>
(+) </xsd:element>
(+) </xsd:schema>
(+) </wsdl:types>
(+) <wsdl:message name="fRequestMessage">
(+) <wsdl:part name="parameters" element="ns:Elemento" />
(+) </wsdl:message>
(+) <wsdl:portType name="dummyPortType">
(+) <wsdl:operation name="f">
(+) <wsdl:input message="ns:fRequestMessage" />
(+) </wsdl:operation>
(+) </wsdl:portType>
(+) <wsdl:binding name="dummy" type="ns:dummyPortType">
(+) <soap:binding style="document"
(+) transport="http://schemas.xmlsoap.org/soap/http" />
(+) <wsdl:operation name="f">
(+) <soap:operation soapAction="f" style="document" />
(+) <wsdl:input><soap:body use="literal" /></wsdl:input>
(+) <wsdl:output><soap:body use="literal" /></wsdl:output>
(+) </wsdl:operation>
(+) </wsdl:binding>
(+) <wsdl:service name="dummy">
(+) <wsdl:port name="dummy" binding="ns:dummy">
(+) <soap:address location="https://localhost/dummy" />
(+) </wsdl:port>
(+) </wsdl:service>
(+) </wsdl:definitions>
(+) * Research.
(+) * Caused by undocumented suds.client.Client behaviour - it was
(+) expecting a specifically formatted suds.__build__ string which was
(+) not the case with the forked project release.
(+) * Add a test.
(+) * Fix.
(+) * Plan preparing a patched release.
(+) * (Jurko) Prepare the '0.4.1 jurko 2' release.
(+) * Update release notes.
(+) * Follow the documented release procedure.
(+) * Update version information.
(+) * Tag in Hg.
(+) * Upload the source package.
(+) * Project site.
(+) * PyPI.
(25.12.2011.)
(+) * (Jurko) Printing out a list of function parameters should not print an
(+) additional trailing comma after the last parameter.
(+) * Research.
(+) * suds.servicedefinition.ServiceDescription.description() code needs
(+) to be changed.
(+) * Prepare test.
(+) * Update code.
(+) * (Jurko) 'suds.xsd.xsbasic.Enumeration' objects should list their value in
(+) their string representation.
(+) * Research.
(+) * Prepare test.
(+) * Update code.
(+) * (Jurko) 'suds.sudsobject.Metadata' __unicode__()/__str__()/__repr__()
(+) functions should not raise an AttributeError.
(+) * Research.
(+) * There should be no need to access a 'suds.sudsobject.Metadata'
(+) object's __metadata__ member as done for 'suds.sudsobjects.Facade'
(+) class instances.
(+) * Prepare test.
(+) * Update code.
(26.12.2011.)
(+) * (Jurko) Clean up suds.xsd.sxbasic.TypedContent.resolve().
(+) * Research.
(+) * Base class resolve() behaviour.
(+) * Other resolve() functions in suds.
(+) * 'resolve()' related caching.
(+) * Clean up the SchemaObject resolve() implementations.
(+) * Caching not needed in TypedContent base classes.
(+) * Document.
(+) * Returns the same XSD node when the node does not have an
(+) explicitly specified external type.
(+) * When called for an XSD node with an explicitly specified external
(+) type returns that type's XSD node.
(+) * (Jurko) Clean up suds.xsd.sxbasic.TypedContent.resolve().
(+) * Research WSDL structure related to the resolving type references.
(+) * 'type'.
(+) * 'ref'.
(+) * Prepare additional resolve() tests.
(+) * 'ref'.
(+) * Valid.
(+) * Recursive.
(+) * Invalid.
(+) * References to nodes referencing other nodes.
(+) * There seems to be no way to do this in WSDL so seems no
(+) reason to keep the complicated and potentially buggy
(+) recursive resolve() implementation.
(+) * Refactor the resolve() implementation to remove recursion.
(+) * Todo items obsoleted by this refactoring.
(+) * Prevent possible endless resolve() loops due to resolve()
(+) directly or indirectly returning the same TypedContent
(+) instance.
(+) * Refactor to cache the final resolved type instead of a possibly only
(+) partially resolved one when resolving without allowing resolving to
(+) builtin types.
(+) * Research.
(+) * Prepare test.
(+) * Update code.
(+) * (Jurko) Check and remove detected potential unused imports if they are no
(+) longer needed.
(+) * splitPrefix.
(+) * DefinitionsReader.
(+) * (Jurko) Prepare the '0.4.1 jurko 3' release.
(+) * Update release notes.
(+) * Follow the documented release procedure.
(+) * Update version information.
(+) * Tag in Hg.
(+) * Upload the source package.
(+) * Project site.
(+) * PyPI.
(+) * (Jurko) Look into suds.xsd.sxbase.SchemaObject.unbounded(). It seems to
(+) return True even when the object is bounded with a max value greater than
(+) 1.
(+) * Research.
(+) * Add tests.
(+) * 'min'.
(+) * 'max'.
(+) * 'optional'.
(+) * 'required'.
(+) * 'unbounded'.
(+) * Update code - rename unbounded to multi_occurrence.
(27.12.2011.)
(+) * (Jurko) Get calling a web service operation taking no parameters to work
(+) correctly.
(+) * Research.
(+) * Seems to work fine. The original problem triggering this task
(+) seems to have been caused by an invalid WSDL.
(+) * Add a task to add more detailed test cases for this.
(17.04.2012.)
(+) * (Jurko) Merge upstream changes from the original suds development
(+) repository.
(+) * (Jurko) Update embedded author values so they do not include non-ASCII
(+) characters causing problems with the 'distribute' based setup procedure
(+) which erroneously assumes they have been prepared using the user's local
(+) code-page.
(+) * (Jurko) Process received pull requests on BitBucket.
(+) * (Jurko) Prepare the '0.4.1 jurko 4' release.
(+) * Update release notes.
(+) * Follow the documented release procedure.
(+) * Update version information.
(+) * Tag in Hg.
(+) * Upload the source package.
(+) * Project site.
(+) * PyPI.
(28.02.2013.)
(+) * (Jurko) Merge changes prepared by Juraj Ivanèiæ.
(+) * Update the original Hg repository containing Python 3 related fixes.
(+) * (Jurko) Process received pull requests.
(01.03.2013.)
(+) * (Jurko) Sync with external related repositories.
(+) * 'http://bitbucket.org/palday/suds'.
(27.03.2013.)
(+) * (Jurko) Fix buggy Python 3 support patch related to reading the cache
(+) version.
(+) * The cache version file should be read as a text and not as a binary
(+) file.
(+) * (Jurko) Fix test_enumeration_type_string_should_contain_its_value test
(+) under Python 2.
(+) * (Jurko) Test & fix Python 2.4 compatibility.
(+) * (Jurko) Fix input/output binding usage.
(+) * Incorrect binding was being used in several places.
(+) * Some of the uses related to processing the SOAP Fault error reporting
(+) element seem to be 'fake', needed only because of a a bit messy
(+) design. Planned to be fixed soon.
(28.03.2013.)
(+) * (Jurko) Add web service reply processing related unit tests.
(+) * (Jurko) Remove undocumented, untested & unused binding.replyfilter
(+) functionality.
(+) * (Jurko) Remove seeming unused SoapClient last_sent() and last_received()
(+) functionality.
(+) * (Jurko) Add a test for unicode Fault data processing.
(+) * (Jurko) Merge SoapClient failed() & succeeded() functions into the same
(+) process_reply() function.
(+) * (Jurko) Make binding classes no longer have anything to do with method
(+) independent Fault element processing.
(+) * (Jurko) Make reply XML processing check the namespace used for Envelope &
(+) Body elements.
(+) * (Jurko) Make SOAP Fault processing check the namespaces used for all
(+) relevant tags.
(+) * (Jurko) Make HTTP status code 200 XML replies containing a Fault element
(+) consistently reported as SOAP faults (plus issue a warning about the
(+) non-standard HTTP status code) both when reporting such faults using
(+) exceptions or by returning a (status, reason) tuple.
(+) * Currently this is done only when reporting them using exceptions.
(+) * (Jurko) Make plugins received() & parsed() calls now process both success
(+) & error replies.
(+) * (Jurko) SOAP fault reports with invalid Fault structure should not cause
(+) suds code to break with an 'invalid attribute' exception.
(+) * (Jurko) SOAP fault reports with no <detail> tag (optional) should not
(+) cause suds code to break with an 'invalid attribute' exception when run
(+) with the suds 'faults' option set to false.
(+) * (Jurko) Clean up message reply processing return codes with suds 'faults'
(+) option set to both true & false.
(+) * (Jurko) Reorganize SimClient injection keywords.
(+) * 'msg' - request message.
(+) * 'reply' - reply message ('msg' must not be set).
(+) * 'status' - HTTP status code accompanying the 'reply' message.
(+) * 'description' - description string accompanying the 'reply' message.
(+) * (Jurko) Check failing tests.
(+) * All tests now pass except for ones related to SOAP Fault unicode
(+) faultstring processing.
(29.03.2013.)
(+) * (Jurko) Sync with external related repositories.
(+) * 'http://bitbucket.org/blarghmatey/suds-blarghmatey'.
(+) * (Jurko) Additional SOAP web service reply tests.
(+) * (Jurko) Fix detected unicode problems.
(+) * Remove invalid WebFault fix merged from an external source.
(+) * All suds exception classes now contain unicode description messages.
(+) * Undo a hasty unicode related WebFault fix merged from an external
(+) source in revision 16b084e8eea6511981d171e63cada98b58720c38.
(+) * Rename smart_str class to byte_str and make it accept only string
(+) parameters.
(+) * Clean Python2/3 compatibility DocumentStore fix.
(+) * Now contains raw data instead of unicode strings.
(+) * This also fixes a problem where unicode data read from the
(+) DocumentStore would fail to be encoded using the default encoding,
(+) which would then get reported as 'document not found'.
(+) * SAX parser now accepts only byte string content instead of also
(+) accepting unicode strings containing latin1 characters only.
(+) * Make tests now specify their fixed WSDL & reply content as byte
(+) strings only.
(+) * Make all tests pass.
(+) * Python 2.4.
(+) * Python 2.7.3.
(+) * Python 3.2.3.
(+) * (Jurko) Remove Python 2/3 unicode encoding compatibility support assuming
(+) that its encoded unicode representations contain only latin1 characters.
(+) * SoapClient 'location' cleanup.
(+) * Should be stored as a unicode object instead of being converted
(+) from its byte representation assuming it was encoded using a
(+) specific encoding, e.g. if read from a WSDL schema, it should be
(+) decoded the same as the rest of the WSDL schema.
(+) * Remove str2bytes() & bytes2str().
(+) * (Jurko) Remove the str_to_utf8_in_py2() Python 2/3 unicode encoding
(+) compatibility support function as it no longer seems to be needed.
(+) * (Jurko) Add tests for web service operation input & output element types.
(30.03.2013.)
(+) * (Jurko) Improve suds tests.
(31.03.2013.)
(+) * (Jurko) Add tests for wrapped suds operation input & output data.
(01.04.2013.)
(+) * (Jurko) Add tests for wrapped suds operation output data.
(+) * (Jurko) Merge patches sent in by Juraj Ivanèiæ from PKE sistemi.
(+) * Add tests for disabled wrapped suds operation input & output data
(+) support.
(+) * Add code for disabling suds library wrapped parameter support.
(02.04.2013.)
(+) * (Jurko) Restriction support cleanup based on patches sent in by Juraj
(+) Ivanèiæ from PKE sistemi.
(+) * Research.
(+) * Not enough time to research this thoroughly and come up with a
(+) complete and well tested solution.
(+) * Prepare and commit related tests.
(+) * Mark the tests as 'expected to fail' & comment the reasons.
(+) * Commit as a separate unfinished private branch.
(+) * (Jurko) Prepare the '0.4.1 jurko 5' release.
(+) * Update release notes.
(08.05.2013.)
(+) * (Jurko) Make suds construct SOAP requests with correct element namespaces
(+) when their XSD schema definition nodes reference other nodes with a
(+) different namespace.
(+) * Research.
(+) * Add test.
(+) * Implement.
(+) * Report back to Jens Arm from KabelDeutschland who reported the issue.
(+) * (Jurko) Support specifying a custom DocumentStore instance for a specific
(+) Client.
(+) * Support.
(+) * Update test code adding documents to the global DocumentStore instance
(+) to use a local one instead.
(+) * Cleanup.
(+) * DocumentStore.open() can return the bytes object directly instead
(+) of having to wrap it inside a BytesIO instance.
(+) * Remove unnecessary Cache functions.
(+) * getf() should be left in the FileCache class only.
(+) * putf() should be removed completely.
(+) * Add tests.
(+) * Separate DocumentStore instances must not share content.
(+) * Not specifying a DocumentStore instance uses the default global
(+) one.
(+) * Default content.
(+) * Updating content.
(+) * Accessing existing content.
(+) * Accessing missing content.
(17.06.2013.)
(+) * (Jurko) Upgrade the setup procedure to use the latest setuptools 0.7.2
(+) release instead of the now deprecated 'distribute' Python package.
(+) * Research.
(+) * Implement.
(18.06.2013.)
(+) * (Jurko) Upgrade the setup procedure to use the latest setuptools 0.7.2
(+) release instead of the now deprecated 'distribute' Python package.
(+) * Add automated setuptools installation (downloaded on-demand from
(+) PyPI).
(+) * Fix issues with installing on Python 2.4.
(+) * Add project installation troubleshooting notes to the main readme.
(+) * (Jurko) See how to allow using the setup script's 'test' option to run the
(+) project's pytest based test suite.
(19.06.2013.)
(+) * (Jurko) Resolve test failures caused by suds generating slightly different
(+) SOAP requests when using Python 3.3.
(+) * Tests should not depend on the order in which XML attributes are
(+) specified for a single XML element where this is not necessary.
(11.11.2013.)
(+) * (Jurko) Prepare the '0.4.1 jurko 5' release.
(+) * Follow the documented release procedure.
(+) * Update release notes.
(+) * Update version information.
(+) * Tag in Hg.
(+) * Upload the source package.
(+) * Project site.
(+) * PyPI.
(18.11.2013.)
(+) * (Jurko) Fix suds time-zone handling according to a pull request received
(+) on BitBucket from MDuggan1.
(+) * Research.
(+) * Suds assumes that all timezones have a full-hour offset from the
(+) UTC timezone and does not work correctly with those that do not.
(+) * This seems to be a suds specific problem and not a more
(+) general Python issue as some information on the net implies.
(+) * FixedOffsetTimezone.
(+) * datetime.tzinfo subclass.
(+) * Used only in test code.
(+) * Represents fixed offset timezones with no daylight saving
(+) time.
(+) * Start morphing the current suds & test code base towards the suggested
(+) patched code.
(19.11.2013.)
(+) * (Jurko) Fix suds time-zone handling according to a pull request received
(+) on BitBucket from MDuggan1.
(+) * Research.
(+) * Prepare date/time string parsing tests.
(20.11.2013.)
(+) * (Jurko) Start documenting the upcoming suds 0.4.1 jurko 6 release.
(+) * (Jurko) Fix suds time-zone handling according to a pull request received
(+) on BitBucket from MDuggan1.
(+) * Research.
(+) * Implement parsing.
(+) * DateTime no longer derived from Date & Time.
(+) * Date constructed from datetime.datetime should hold a datetime.date.
(+) * Research.
(+) * See if sax.date.Date("1900-01-01+02:00") should hold a timezone
(+) aware date object.
(+) * Related test: TestDate.testStringToValue().
(+) * Timezone data.
(+) * See when we need to specify timezone information.
(+) * In tests when we create DateTime/Time objects.
(+) * Default timezone when parsing web service responses.
(+) * YAGNI - for now left to user code reading specific
(+) DateTime/Time objects.
(+) * Default timezone when constructing web service requests.
(+) * YAGNI - for now left to user code creating specific
(+) DateTime/Time objects.
(+) * Implement.
(+) * Contained datetime.DateTime/Time objects should hold their
(+) timezone information.
(+) * Research.
(+) * Test TestDate.testStringToValue_failure() fails on Python 2 but
(+) passed on Python 3.
(+) * Fixed by the latest implementation changes.
(21.11.2013.)
(+) * (Jurko) Fix suds time-zone handling according to a pull request received
(+) on BitBucket from MDuggan1.
(+) * Check for feedback from users requesting this patch.
(+) * Add tests.
(+) * FixedOffsetTimezone class.
(+) * Fix FixedOffsetTimezone.tzname() output string formatting bug with
(+) negative timezone offsets.
(+) * Add tests.
(+) * UtcTimezone class.
(+) * (Jurko) Remove support for timezone specifiers including seconds as such
(+) are not supported by either Python or the XSD data types specification.
(+) * Add/update tests.
(+) * Input like "+10:10:10" should be rejected.
(+) * Timezone offset timedelta objects containing more detailed than
(+) minute information.
(+) * Remove support.
(+) * (Jurko) Add tests making sure timezone indicator strings without a colon
(+) between hours and minutes are not accepted.
(+) * This leads to border cases like "+121" where you do not know whether
(+) this represents "+01:21" or "+12:01".
(22.11.2013.)
(+) * (Jurko) Remove date/time related test code duplication.
(+) * Date, DateTime & Time classes.
(+) * Clean up test function names.
(+) * Test construction from unexpected objects.
(+) * Test construction from datetime.date/datetime/time objects.
(+) * str() tests.
(+) * XDate & Date class.
(+) * XDateTime & DateTime class.
(+) * XTime & Time class.
(+) * Timezone handling checks in XDateTime & XTime classes.
(23.11.2013.)
(+) * (Jurko) Make converting datetime/time to string output subsecond
(+) information without trailing zeroes.
(+) * Test.
(+) * Implement.
(+) * Discard as the implementation complexity seems way too great and the
(+) gain does not seem to reciprocate the cost.
(+) * (Jurko) Update the project's versioning scheme to no longer have pip
(+) detect suds-jurko releases as 'prerelease' only due to our version tag
(+) formatting.
(+) * Accept that the original suds project has died and continue with the
(+) natural version number progression.
(+) * (Jurko) Plan a new release.
(+) * (Jurko) Update used setuptools version.
(+) * (Jurko) Remove unused project files inherited from the original suds
(+) project.
(25.11.2013.)
(+) * (Jurko) Test the project with different Python installations.
(+) * Python 2.4.3/x86, on Windows 7/SP1/x64.
(+) * Install.
(+) * 'setuptools'.
(+) * 'pip'.
(+) * Describe encountered problems in 'HACKING.txt'.
(+) * 'pytest'.
(+) * Describe encountered problems in 'HACKING.txt'.
(+) * Run tests.
(+) * Python 2.4.4/x86, on Windows 7/SP1/x64.
(+) * Install.
(+) * 'setuptools'.
(+) * 'pip'.
(+) * Describe encountered problems in 'HACKING.txt'.
(+) * 'pytest'.
(+) * Describe encountered problems in 'HACKING.txt'.
(+) * Run tests.
(+) * Python 2.7.6/x64, on Windows 7/SP1/x64.
(+) * Install.
(+) * 'setuptools'.
(+) * 'pip'.
(+) * 'pytest'.
(+) * Run tests.
(+) * Python 3.2.5/x64, on Windows 7/SP1/x64.
(+) * Install.
(+) * 'setuptools'.
(+) * 'pip'.
(+) * 'pytest'.
(+) * Run tests.
(+) * Python 3.3.3/x86, on Windows 7/SP1/x64.
(+) * Install.
(+) * 'setuptools'.
(+) * 'pip'.
(+) * 'pytest'.
(+) * Run tests.
(+) * Python 3.3.3/x64, on Windows 7/SP1/x64.
(+) * Install.
(+) * 'setuptools'.
(+) * 'pip'.
(+) * 'pytest'.
(+) * Run tests.
(+) * (Jurko) Document the test environment setup in HACKING.txt.
(+) * (Jurko) Prepare a new suds-jurko 0.5 release.
(28.11.2013.)
(+) * (Jurko) Look into a reported problem with how unicode data gets encoded
(+) inside a suds SOAP request with Python 2. Reported by Alexey Sveshnikov
(+) and mduggan1.
(+) * Get a reproducible use case from Alexey Sveshnikov.
(+) * Research.
(+) * Data in HTTP requests needs to be encoded as defined by the
(+) Content-Type header given in that request (ISO-8859-1 being the
(+) default).
(+) * Suds set the "Content-Type=text/xml; charset=utf-8" HTTP request
(+) header for all of its SOAP requests.
(+) * Python's http module (used internally by the urllib module) add
(+) the given message data to its existing data. Suds gives its
(+) message data to urllib as an utf-8 encoded bytes object. If
(+) existing message data is unicode, it will attempt to forcefully
(+) convert the given message data to unicode assuming all it contains
(+) is ASCII characters.
(+) * Suds message data is already a utf-8 encoded bytes object.
(+) * With Python-3 httplib's previous message data is a bytes and not a
(+) string object.
(+) * The reason why httplib's message content is converted to unicode
(+) is that with Python 2 the initial header is a unicode object
(+) u'POST /service HTTP/1.1' while with Python 3 it is a bytes object
(+) b'POST /service HTTP/1.1'.
(+) * Python 2.
(+) * Affects Python 2.7.
(+) * Does not affect Python 2.4.
(+) * Python 3.
(+) * Its httplib Request object automatically converts the
(+) passed URL to a bytes object (assumes it contains only
(+) ASCII characters) which then prevents all the other
(+) request data from being forcibly converted to unicode.
(29.11.2013.)
(+) * (Jurko) Look into a reported problem with how unicode data gets encoded
(+) inside a suds SOAP request with Python 2. Reported by Alexey Sveshnikov
(+) and mduggan1.
(+) * Reduce the reproducible use case.
(+) * Should not require an external web service.
(+) * Integrate into regular suds-jurko tests.
(+) * Make the reproducible test case not attempt to connect to the network
(+) if the test passes.
(+) * Fix the issue.
(+) * Confirm with Alexey Sveshnikov that it is ok with him to make the
(+) reproducible use case public.
(+) * Close related project pull requests on 'bitbucket.org'.
(+) * (Jurko) Add a test for handling actual non-ASCII unicode service location
(+) data.
(30.11.2013.)
(+) * (Jurko) See if the suds HttpTransport.open() method ever gets called.
(+) * Yup, transport open() methods get called from DocumentReader, e.g.
(+) when downloading a WSDL schema from the net.
(+) * It seems like Transport's open() & send() methods might be mergeable,
(+) but that would first require further research. For now - YAGNI.
(+) * (Jurko) Process pull requests received on 'bitbucket.org'.
(+) * Fix setup.py current working folder path comparison so it works with
(+) links in the path. Contributed by ryanpetrello.
(23.12.2013.)
(+) * (Jurko) Prepare a basic development script for running the full suds test
(+) suite using multiple Python interpreter versions.
(26.12.2013.)
(+) * (Jurko) Process patches sent in by Bouke Haarsma on BitBucket.
(+) * Unicode logging issue.
(+) * Research.
(+) * Prepare tests.
(+) * Merge.
(+) * Thorough code review.
(+) * Implement a cleaner fix for both Reply & Request classes.
(+) * Update release notes.
(+) * (Jurko) Fix possible typo in the suds.transport.Request string/unicode
(+) representation where there seems to be a missing space after a colon just
(+) before the URL information.
(+) * (Jurko) Remove unnecessary logger objects.
(+) * (Jurko) Process the project issue #2 reported on BitBucket by Arthur
(+) Clune, related to not being able to set the option cache location if the
(+) default cache location is not a writable folder.
(+) * Research.
(+) * Prepare tests.
(+) * Default cache.
(+) * Default ObjectCache instance should be created only if no other
(+) cache has been explicitly specified during suds.client.Client()
(+) construction.
(+) * Fix.
(+) * Update release notes.
(+) * Report back & close the project issue on BitBucket.
(21.01.2014.)
(+) * (Jurko) Process patch sent in by Bouke Haarsma on BitBucket to 'make sure
(+) all web service operation parameters are consumed'.
(+) * This patch has been worked on on a separate feature branch for close
(+) to a month now.
(+) * Update todo list.
(+) * Update release notes.
(+) * Commit.
(+) * Push changes to BitBucket.
(23.01.2014.)
(+) * (Jurko) Prepare internal documentation notes folder.
(+) * Add folder & add a descriptive readme.txt file to it.
(+) * Include in the source distribution folder.
(+) * Do not include it in the installation.
(+) * Note the new documentation notes folder in the project's HACKING.rst
(+) documentation.
(24.01.2014.)
(+) * (Jurko) Process Jurko's research & todo notes collected while working on
(+) reporting extra parameter errors.
(+) * (Jurko) Prepare a new suds-jurko 0.6 release.
(+) * Check release notes.
(+) * Test.
(+) * Update version tag.
(+) * Tag in Hg.
(+) * Update version information.
(+) * Retag in Hg
(+) * Package the release.
(+) * Distribute the new release.
(+) * PyPI.
(+) * BitBucket.
(+) * Notify Gauthier Bastien - see comments for commit
(+) 9da81de891958292850a242781b30a3493f617 on BitBucket.
(+) * Prepare project information for the next development cycle.
(25.01.2014.)
(+) * (Jurko) Look into issue #12 & the related pull request #22 reported on
(+) BitBucket - suds-jurko incorrectly returning a raw Fault() instead of a
(+) WebFault() object when faults=False. Reported as a regression against the
(+) base suds project.
(+) * Research.
(+) * Most likely introduced by commit
(+) '506c8362c81343f1f629906606db23daf8b426ec'.
(+) * Try to reproduce using an injected reply.
(+) * Test against the current HEAD commit.
(+) * Find a commit not that works correctly.
(+) * Status.
(+) * Could not reproduce the issue. Truly suds-jurko returns a
(+) suds.sudsobject.Fault object, but the original suds library
(+) implementation does not return a suds.WebFault object either.
(+) Further work on this can be done only once the exact desired
(+) behaviour is defined.
(+) * Ask for feedback containing a reproducible example.
(26.01.2014.)
(+) * (Jurko) Code cleanup.
(+) * Stylistic cleanup.
(+) * (Jurko) Process decimal type support patch sent in by pendletongp on
(+) BitBucket.
(+) * Research.
(+) * Where a Python type to SOAP representation transformation is
(+) performed.
(+) * Expected locations.
(+) * When constructing a web service operation invocation
(+) request, i.e. when marshaling Python data to a SOAP
(+) request XML (mx package).
(+) * Where a SOAP representation to Python type transformation is
(+) performed.
(+) * Expected locations.
(+) * When processing a web service operation reply, i.e. when
(+) unmarshaling Python data from a SOAP response XML (umx
(+) package).
(28.01.2014.)
(+) * (Jurko) Process decimal type support patch sent in by pendletongp on
(+) BitBucket.
(+) * Prepare tests.
(+) * Representation tests for different data types.
(+) * Transformation tests for different data types.
(+) * Thorough code review.
(+) * Add XFloat tests.
(29.01.2014.)
(+) * (Jurko) Update XFloat to correctly translate decimal.Decimal &
(+) numbers.Real (on Python 2.6+) values to their XSD value representation.
(+) Currently, inconsistently with how other types are handled, they get
(+) translated to the same decimal/fraction value which then gets changed to a
(+) string later on when actually writing it to an XML string. This works out
(+) fine for decimals in the end but not for rationals/fractions.
(+) * Research.
(+) * decimal.Decimal input values already get entered correctly into
(+) constructed SOAP XML requests.
(+) * It seems not all numbers.Real derived classes can be converted to
(+) their XSD value representation the same way.
(+) * Some examples.
(+) * float --> str(x)
(+) * fractions.Fraction --> str(float(x))
(+) * decimals.Decimal --> str(x)
(+) * int --> str(x)
(+) * bool --> str(int(x))
(+) * Adding support for them would pair down to simply listing all
(+) supported types explicitly and adding code for translating
(+) each of them separately. We can not possibly do this for 'all
(+) data types in the world' so the current implementation seems
(+) as good as any.
(+) * A user application requiring support for a specific type can
(+) always add it itself by implementing a replacement XFloat class
(+) and registering it using suds.xsd.xbuiltin.Factory.maptag().
(+) * Discard the task.
(+) * Add a new development note document describing XType class usage for
(+) built-in XSD type value translation between Python objects and their
(+) XSD value representations.
(+) * (Jurko) Clean up different XType.translate() methods. See if there is any
(+) difference in them returning a string or any other Python object
(+) convertible to a string using str().
(+) * If there is no difference, clean up the code to simply return the
(+) original value where possible.
(+) * (Jurko) Process decimal type support patch sent in by pendletongp on
(+) BitBucket.
(+) * Research.
(30.01.2014.)
(+) * (Jurko) Process decimal type support patch sent in by pendletongp on
(+) BitBucket.
(+) * Research.
(+) * XSD type value representation is incorrect.
(+) * Apply equivalent changes together with adding related unit tests.
(+) * Comment on the original issue #3 & patch request #19 on BitBucket.
(+) * Update release notes.
(+) * Later ideas to consider.
(+) * 'float' --> 'decimal.Decimal' conversion which has not been
(+) implemented in Python before Python 2.7.
(+) * YAGNI for now.
(+) * Update release notes.
(31.01.2014.)
(+) * (Jurko) Restore last_sent()/last_received() getters for last used SOAP
(+) request/response messages.
(+) * Research background.
(+) * Requested by.
(+) * andreebrazeau as BitBucket.
(+) * 'http://bitbucket.org/andreebrazeau'.
(+) * FerCesar at BitBucket.
(+) * 'http://bitbucket.org/FerCesar'.
(+) * Lucas Sampaio at BitBucket.
(+) * 'http://bitbucket.org/lucassmagal'.
(+) * Related links.
(+) * 'http://stackoverflow.com/questions/4426204/
(+) how-can-i-output-what-suds-is-generating-receiving'.
(+) * 'http://jortel.fedorapeople.org/suds/doc/
(+) suds.client.Client-class.html'
(+) * Code removed in commit 'f0034d6826c179625478bc19ae2a39a0b803fc3a'.
(03.02.2014.)
(+) * (Jurko) Restore last_sent()/last_received() getters for last used SOAP
(+) request/response messages.
(+) * Clean up related code.
(05.02.2014.)
(+) * (Jurko) Clean up SoapClient/SimClient related code a bit.
(+) * Generic code cleanup.
(+) * Mark private methods using leading underscores.
(+) * Remove RequestContext.original_envelope attribute.
(+) * Stop logging incorrect 'original_envelope' value.
(+) * Rename to _SoapClient/_SimClient.
(06.02.2014.)
(+) * (Jurko) Add tests for the functionality potentially affected by a planned
(+) _SoapClient/_SimClient refactoring.
(+) * Cache - update existing tests.
(+) * File operation failures.
(07.02.2014.)
(+) * (Jurko) Update FileCache duration handling.
(+) * Research.
(+) * Currently FileCache.__set_duration() implementation allows using
(+) only a single unit.
(+) * Check whether Python 2.4 datetime.timedelta class implementation
(+) allows it to be constructed from multiple units.
(+) * Store FileCache.duration as a datetime.timedelta instance.
(+) * Support for specifying FileCache durations with multiple time units.
(+) * Add tests.
(+) * Default suds.Client cache.
(+) * Already tested in test_default_cache_construction().
(+) * Class.
(+) * Duration.
(+) * Default duration.
(+) * Set duration (<0, 0, >0, single/multiple duration arguments).
(+) * Exception on duration < 0.
(+) * YAGNI. Current implementation, using negative values as
(+) regular durations and simply adding them to a specific file
(+) timestamp to see whether it expired seems good enough as well
(+) as intuitive enough for the user.
(+) * Expiration after expiration time with duration > 0.
(+) * Not expiring after expiration time with duration = 0
(+) * Not expiring before expiration time with duration > 0.
(+) * Not expiring before expiration time with duration = 0.
(+) * Duration testing for all FileCache derived classes - DocumentCache
(+) & ObjectCache.
(+) * FileCache and derived classes - one item expiring should not
(+) affect other unexpired items.
(+) * Update release notes.
(+) * (Jurko) Per process default FileCache folder randomization + removal on
(+) exit.
(+) * Research.
(+) * Related BitBucket issue #15.
(+) * Links from the BitBucket issue #15.
(+) * 'https://bugzilla.redhat.com/show_bug.cgi?id=978696'.
(+) * 'http://cve.mitre.org/cgi-bin/cvename.cgi?name=CVE-2013-2217'.
(09.02.2014.)
(+) * (Jurko) Per process default FileCache folder randomization + removal on
(+) exit - fix CVE-2013-2217.
(+) * Add tests.
(+) * Implement.
(+) * Update release notes.
(+) * Update related issues on BitBucket.
(+) * (Jurko) Extract all suds.client.Client related tests related to how it
(+) uses its worker cache/store/transport components into separate
(+) test_client.py test module. Modules like test_transport.py or
(+) test_cache.py should concentrate on testing that specific component
(+) functionality and not how the component gets used by suds.client.Client.
(+) * Test modules to check.
(+) * 'test_cache.py'.
(+) * 'test_client_cache.py'.
(+) * 'test_transport.py'.
(+) * Several transport usage tests already prepared in test_transport_1.py
(+) on Jurko's notebook.
(10.02.2014.)
(+) * (Jurko) Add tests for the functionality potentially affected by a planned
(+) _SoapClient/_SimClient refactoring.
(+) * Client's cache/store/transport usage.
(+) * WSDL access.
(+) * If an object is found in cache it should not be looked up in
(+) the given document store or transported.
(+) * If an object is found in a given document store it should not
(+) be transported.